Windows Wagenrücklauf wird \r\nunter \nUnix \r\nals zwei Zeichen behandelt?
Windows Wagenrücklauf wird \r\nunter \nUnix \r\nals zwei Zeichen behandelt?
Antworten:
Dies sind zwei Zeichen:
\r ist Wagenrücklauf;\n ist Zeilenvorschub.Zwei Zeichen zusammen repräsentieren eine neue Zeile unter Windows. Während unter Linux \nneue Linie darstellt. Der Cursor bewegt sich unter Linux an den Anfang einer neuen Zeile. Unter Windows bleibt der Cursor in derselben Spalte in der Konsole, jedoch in der nächsten Zeile.
\rUnter Linux hat dies den gleichen Effekt wie unter Windows: Bewegt den Cursor an den Zeilenanfang. Es ist möglich, verschiedene Informationen in derselben Zeile zu drucken, in \rder anstelle von verwendet wird \n.
Eigentlich \r is 0x0D (^M) and \n is 0x0A (^J)aber ..... unter Windows:
\n will write 0x0D 0x0A
unter Unix:
\r will write 0x0D
\n will write 0x0A
stdoutals Binärdatenstrom anstelle eines Textstroms würde dazu führen \n, dass die Sohle 0x0Anicht unter 0x0D 0x0AWindows geschrieben wird. Siehe die Antwort von @FredFoo.
Kommt auf die Einstellung an. \r\nist zwei Bytes breit (in ASCII, UTF-8 usw.), aber E / A-Bibliotheken wie die C- stdioBibliothek und andere können im Textmodus zwischen \nund \r\nquasi transparent übersetzen.
Dh auf einer Windows-Plattform ein C-Programm, das einen Textmodus-Stream txt_inmit liest
while ((c = getc(txt_in)) != EOF)
printf("%02x\n", c);
meldet den ASCII-Code für nicht \r. Umgekehrt putc('\n', txt_out)wird tatsächlich \r\nin den Textmodus-Stream geschrieben txt_out.
Ja, es sind zwei Zeichen: Wagenrücklauf '\ r' gefolgt von Zeilenvorschub '\ n'.
Ich führte einige Tests (nichts Besonderes) mit Notepad ++ und Sublime Text 2 auf Windows, und es stellt sich heraus , dass \rund \nin der Tat zwei unterschiedliche Charaktere sind, aber ...
Verschiedene Texteditoren werden möglicherweise eingefügt oder nicht, \rwenn die Eingabetaste gedrückt wird.
Versuchen Sie Folgendes in Ihrem Texteditor:
1
2
3
4
5
Drücken Sie dann Strg + F , aktivieren Sie reguläre Ausdrücke und suchen Sie nach \r. Abhängig von Ihrem Texteditor und seinen Einstellungen können Sie am Ende jeder Zeile ein Zeichen "treffen" oder "nicht treffen". Wenn der obige Text aus einem anderen Editor kopiert wird, kann sich auch das Verhalten unterscheiden ...
Einige Texteditoren ermöglichen Anpassungen in ihren Einstellungen, in dem Sie festlegen können , wenn Sie es vorziehen , \r\noder Unix-Stil \neingeführt werden , wenn Sie die Taste Return . Darüber hinaus können Sie möglicherweise festlegen , dass ein konsistenter Stil erzwungen werden soll, indem Sie das \rZeichen entfernen oder einfügen , bevor Sie eine Datei speichern.