Zeilenumbrueche in Datei
-
Also schreibe ich Text in eine Datei.
Der enthält auch '\n' - Zeichen, also Zeilenumbrüche. Nun würde ich erwarten, wenn ich die Datei mit dem Editor öffne, an den Stellen, an denen ich '\n' in die Datei geschrieben habe, eine neue Zeile beginnt. Aber der Editor zeichnet nur ein Viereckiges Zeichen, an der Stelle, an der das '\n' sein sollte, und schreibt in der gleichen Zeile weiter. Wie kann ich erreichen, dass das Zeilenumbruchzeichen auch als solches gespeichert wird? Da ist doch irgendetwas mit ifstream wohl nicht in Ordnung?
-
mit iofstream ist alles in orndung nur mit deinen editor nicht
mache editoren verstehen nur \r\n und manche nur \n
am beste du verwendest std::endl
mfg
-
spjoe schrieb:
am beste du verwendest std::endl
Nein, \n passt schon, std::endl macht ja was anderes.
\n setzt im Textmodus auf magische Art und Weise den richtigen Line-End-Marker für das jeweilige Betriebssystem, nur im Binärmodus gibts Probleme
-
@nnman naja stimmt nicht ganz. denn z.b. gibts in linux keinen binary modus und std::endl verwendet sicher auch immer das richtige newline zeichen
mfg
-
spjoe schrieb:
denn z.b. gibts in linux keinen binary modus
Das wäre mir neu.
und std::endl verwendet sicher auch immer das richtige newline zeichen
Klar, genauso wie \n, allerdings leert es auch den Puffer vollständig, was nicht immer erwünscht ist.
-
mit std::endl hast recht aber in linux kannst zwar zwischen binary text modus wählen es ist aber nacher keine unterschiede in der Datei. nur im Mime header steht drin das dass filw binary ist
-
spjoe schrieb:
mit std::endl hast recht aber in linux kannst zwar zwischen binary text modus wählen es ist aber nacher keine unterschiede in der Datei.
Darum geht es beim Binary-Mode ja auch nicht, da gehts viel mehr darum, dass man Dateien eben im Binärmodus schreiben und lesen kann, was unter GNU/Linux genauso funktioniert wie unter Windows.