2013-08-22 2 views

Antwort

39

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.

+9

Warum der Downvote? Dies ist die einzige richtige Antwort bisher. –

+0

Ich vermute, Spielereien, eine andere ältere unabhängige Antwort von mir bekam nach unten Momente gestimmt, nachdem dies tat. So ist das Leben. –

+2

"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. –

8

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")

4

'\ 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.

11

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.

  1. 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.

  2. Im Quellcode repräsentieren die 2 Zeichen Text \n die char neue Zeile. Wenn ASCII verwendet wird, hätte dies char den Wert von 10.

  3. 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.