Unix ha \ n, Mac era \ r ma è ora \ n e DOS/Win32 è \ r \ n. Quando si crea un file di testo con C, come assicurarsi che i caratteri di fine riga siano appropriati all'utilizzo del sistema operativo?In C come scrivere qual è il carattere di fine riga appropriato per il sistema operativo?
risposta
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.
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.
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.
+1 per menzionare la distinzione tra file di testo e binari (e per battermi!) –
- 1. Qual è il riferimento appropriato per scrivere un driver MySql?
- 2. È possibile scrivere un sistema operativo completamente in C?
- 3. Qual è il carattere di fine riga nel linguaggio C: \ r o \ n?
- 4. Come determinare il sistema operativo
- 5. Spostare il carattere di fine riga in Vi, oltre l'ultimo carattere nella riga
- 6. Come rilevare il sistema operativo in esecuzione?
- 7. Come scrivere un carattere di fine riga nativo in un descrittore di file in Python?
- 8. Come aggiungere un carattere di fine riga in app.config?
- 9. database senza sistema operativo richiesto per il sistema integrato
- 10. Qual è il modo migliore per scrivere commenti in C?
- 11. Impossibile determinare il sistema operativo
- 12. PHP carattere di fine riga per un file csv
- 13. Rileva il sistema operativo dall'estensione di Firefox
- 14. Come rilevare il sistema operativo corrente Gradle
- 15. Qual è il codice carattere ASCII per '-'?
- 16. Identificazione Se il sistema operativo è (aperto) SUSE in Python?
- 17. Qualunque sistema operativo implementa il buffering per malloc()?
- 18. In R, qual è il modo canonico per rilevare se il sistema operativo è a 64 bit?
- 19. Qual è il modo migliore per un'applicazione WinForms per determinare esattamente su quale sistema operativo Windows è in esecuzione?
- 20. Scrittura di un sistema operativo per il processore Motorola 68K. Posso emularlo? E posso testare lo sviluppo del sistema operativo?
- 21. Miglior sistema operativo educativo per studio?
- 22. Identificare il sistema operativo del sistema tramite ID
- 23. Qual è la differenza tra il sistema operativo e il kernel?
- 24. In che modo esattamente il sistema operativo protegge il kernel
- 25. Qual è il modo più semplice per ottenere il numero di riga dalla posizione del carattere in stringa?
- 26. Qual è il modo più semplice in C# per tagliare una nuova riga da una stringa?
- 27. C# compilato in mono - Rileva sistema operativo
- 28. Qual è il ** carattere glob?
- 29. Come ottenere facilmente il separatore di riga del sistema operativo corrente in Scala?
- 30. Qual è il modo appropriato per digitare fortemente il ritorno di una funzione generica?
SE il file viene aperto in modalità testo –
Sì, ovviamente. Dovrei averlo incluso dall'inizio. Aggiornato ora. – hlovdal
Il richiedente ha parlato esplicitamente di file di testo. – Joey