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.


Anmelden zum Antworten