Was ist das Newline-Zeichen in C? Ich weiß, dass verschiedene OS verschiedene Zeilenende-Zeichen haben, aber sie werden in das C-Zeilenumbruch-Zeichen übersetzt. Was ist das für ein Charakter?Was ist das Newline-Zeichen in der C-Sprache: r oder n?
Antwort
Es ist \n
. Wenn Sie Textmodusdateien oder stdin/stdout usw. lesen oder schreiben, müssen Sie \n
verwenden, und C übernimmt die Übersetzung für Sie. Wenn Sie mit binären Dateien arbeiten, sind Sie per Definition selbständig.
Wenn Sie das Newline-Zeichen es ist \ n und \ r ist die Träger-Return-Charakter bedeuten durch Newline, aber wenn Sie durch Newline die Zeilenende bedeutet dann hängt es von dem Betriebssystem: DOS verwendet Wagenrücklauf und Zeilenvorschub ("\ r \ n") als eine Linie endet, die Unix gerade Zeilenvorschub verwendet ("\ n")
'\ r' = Wagenrücklauf ‚\ n '= Zeilenvorschub, Tatsächlich gibt es einige verschiedene Verhaltensweisen, wenn Sie sie in verschiedenen O verwenden S.In Unix ist es '\ n', aber es ist '\ r' '\ n' in Windows.Ich hoffe, es kann Ihnen helfen.
Die neue Linie kann aus einem einigechar
und es hat den Wert von '\n'
gedacht werden. 5.2.1 C11
Diese neue C-line kommt in 3 Plätzen up: C-Quellcode, als einzelnes char
und als End-of-Line-in-Datei-I/O, wenn in Textmodus.
Viele Compiler behandeln Quelltext als ASCII. In diesem Fall werden die Codes 10, manchmal 13 und manchmal 13, 10 als neue Zeile für den Quellcode gepaart. Wäre der Quellcode in einem anderen Zeichensatz enthalten, könnten andere Codes verwendet werden. Diese neue Zeile markiert normalerweise das Ende einer Zeile Quellcode (eigentlich ein bisschen komplizierter), // Kommentar und # Anweisungen.
Im Quellcode repräsentieren die 2 Zeichen Text
\n
diechar
neue Zeile. Wenn ASCII verwendet wird, hätte dieschar
den Wert von 10.In Datei-I/O, im Textmodus, auf die Bytes der Eingabedatei zu lesen (und stdin), abhängig von der Umgebung , wenn Bytes mit den Werten von 10 (Unix), 13,10, (* 1) (Windows), 13 (Old Mac ??) und anderen Variationen in ein '\ n' übersetzt werden. Beim Schreiben einer Datei (oder stdout) erfolgt die umgekehrte Übersetzung.
Hinweis: Datei-E/A im Binärmodus führt keine Übersetzung durch.
Die '\r'
in Quellcode ist der Wagenrücklauf char
.
(* 1) A lone 13 und/oder 10 kann auch in \n
übersetzen.
Warum der Downvote? Dies ist die einzige richtige Antwort bisher. –
Ich vermute, Spielereien, eine andere ältere unabhängige Antwort von mir bekam nach unten Momente gestimmt, nachdem dies tat. So ist das Leben. –
"C wird die Übersetzung für Sie übernehmen": Das ist eine ziemlich irreführende Aussage. Zeichen-Escapes innerhalb von Literal-Strings werden vom Compiler verarbeitet (typischerweise Formatzeichenfolgen). Zeichen-Escapes in Eingabe- und Ausgabeströmen (wie scanf, gets, cin ... oder geschrieben von printf, puts, cout ...) werden NICHT behandelt. <\n> bleibt die beiden Zeichen <\> und, und der ASCII-Code 10 wird als Neue-Zeile behandelt. –