Wie ist n
in eine Datei geschrieben, die von einem C-Programm im Binärmodus geschrieben wurde?
Im Textmodus unter Linux n
wird der ASCII-Wert des Zeilenvorschubzeichens (LF) und unter Windows n
werden die ASCII-Werte von CR- und LF-Zeichen.
Vielen Dank.
Antworten:
1 für die Antwort № 1In einem C-Programm "n"
ist immer der Einzelzeichenwert 0x0a (es wäre sinnlos zu haben "n"
magisch eine Konstante mit zwei Zeichen!). Wenn Sie an einen geschrieben haben Textdatei Unter Windows würde dies in CR LF (0x0D 0x0A) übersetzt werden. Aber wenn du an eine schreibst Binärdatei, wird immer als Byte 0x0A geschrieben, egal welches Betriebssystem Sie verwenden.
1 für die Antwort № 2
"n" ist ein 0x0a.
Diese Worte sollen die Antwort lange genug machen.
1 für die Antwort № 3
In C verwendet der Code einen Zeichensatz. Das ist überwältigend ASCII, aber nicht von C angegeben.
Mit putc("n");
wird der erzeugte Code die und
n
und bilden die Zeichenkodierung des Zeilenvorschubzeichens. In ASCII hat der Zeilenvorschub den Code 10. Also 10
oder 0x0A
wird emittiert.
Hätte der Quellcode so etwas geschrieben EBCDIC und dann als solcher kompiliert, wäre der vom Code geschriebene Wert ein anderer. 37?