2009-04-21 22 views

risposta

11
fprintf(your_file, "\n"); 

Questo verrà convertito in un EOL appropriata dalla libreria stdio del sistema operativo a condizione che si è aprire il file in modalità testo. In modalità binaria non avviene alcuna conversione.

+1

SE il file viene aperto in modalità testo –

+0

Sì, ovviamente. Dovrei averlo incluso dall'inizio. Aggiornato ora. – hlovdal

+0

Il richiedente ha parlato esplicitamente di file di testo. – Joey

12

Da Wikipedia:

Quando si scrive un file in modalità testo, '\ n' è trasparentemente tradotto alla sequenza newline nativa utilizzata dal sistema , che può essere più lungo di un carattere. (Si noti che un'implementazione C è consentito di non conservare caratteri di nuova riga nel file. Ad esempio, le righe di un file di testo potrebbero essere memorizzati come righe di una tabella SQL o come record a lunghezza fissa.) Quando lettura in modalità testo, la sequenza newline nativa viene tradotta in '\ n'. In modalità binaria, la seconda modalità di I/O supportata dalla libreria C, nessuna traduzione viene eseguita e la rappresentazione interna di qualsiasi sequenza di escape viene emessa direttamente.

8

Quando si apre un file in modalità testo (Pass "w" per fopen invece di "WB") tutti i caratteri di nuova riga scritti nel file verranno automaticamente convertiti alla sequenza newline appropriato per il sistema. Le sequenze di Newline saranno tradotte in caratteri newline quando leggerai il file.

Ecco perché è importante distinguere tra testo e modalità binaria; se stai scrivendo in modalità binaria, C non manometterà i byte che scrivi su un file.

+0

+1 per menzionare la distinzione tra file di testo e binari (e per battermi!) –

Problemi correlati