2013-08-22 22 views

risposta

39

È \n. Quando leggi o scrivi file in modalità testo, o stdin/stdout, ecc. Devi usare \n e C gestirà la traduzione per te. Quando hai a che fare con file binari, per definizione sei da solo.

+9

Perché il downvote? Questa è l'unica risposta corretta finora. –

+0

Sospetto shenanigans, un'altra mia più vecchia risposta non correlata ha votato alcuni momenti dopo quello che ha fatto. È la vita. –

+2

"C gestirà la traduzione per te": questa è una dichiarazione piuttosto fuorviante. Gli escape di caratteri all'interno di stringhe letterali vengono elaborati dal compilatore (in genere le stringhe di formattazione). I caratteri che escono in flussi di input e output (letti da scanf, gets, cin ... o scritti da printf, puts, cout ...) NON vengono gestiti. <\n> rimane i due caratteri <\> e e il codice Ascii 10 viene considerato come una nuova riga. –

8

Se si intende per ritorno a capo il carattere a capo è \ n e \ r è il carattere di ritorno vettore, ma se si intende per ritorno a capo della linea che termina poi dipende dal sistema operativo: DOS utilizza ritorno a capo e avanzamento riga ("\ r \ n") come una linea finale, che Unix usa solo avanzamento riga ("\ n")

4

'\ r' = ritorno a capo, '\ n '= line feed, infatti ci sono alcuni comportamenti diversi quando li usi in diversi O S. In Unix è '\ n', ma è '\ r' '\ n' in Windows. Spero che possa aiutarti.

11

La nuova linea può essere pensato a un qualchechar ed ha il valore di '\n'. C11 5.2.1

Questa nuova linea C si avvicina a 3 posti: C codice sorgente, come un unico char e come un fine-of-line in file di I/O quando in testo modalità.

  1. Molti compilatori tratteranno il testo di origine come ASCII. In tal caso, i codici 10, a volte 13 e talvolta abbinati a 13,10 come new-line per il codice sorgente. Se il codice sorgente fosse stato in un altro set di caratteri, potrebbero essere usati codici diversi. Questa nuova linea di solito segna la fine di una riga di codice sorgente (in realtà un po 'più complicato qui), // commento e # direttive.

  2. Nel codice sorgente, il testo di 2 caratteri \n rappresenta la riga char. Se si utilizza ASCII, questo char avrebbe il valore di 10.

  3. In file di I/O, in modalità testo, leggendo i byte del file di input (stdin e), seconda dell'ambiente , quando i byte con il valore (s) di 10 (Unix), 13,10, (* 1) (Windows), 13 (Vecchio Mac ??) e altre varianti sono tradotti in un '\ n'. Dopo aver scritto un file (o stdout), si verifica la traduzione inversa.
    Nota: I/O file in modalità binaria non esegue alcuna conversione.

Il '\r' nel codice sorgente è il ritorno del carrello char.

(* 1) Un solo e/o può anche tradurre in \n.

Problemi correlati