Zeilen in Textdatei schreiben



  • Also ich möchte mir eine Funktion schreiben der ich einen String übergebe, dieser String soll dann in eine Textdatei geschrieben werden, dieser soll später(hier schreibe ich erst die DLL) in einer Win32Anwendung permanenet ausgegeben werden, immer Zeile für Zeile.

    1. Jetzt meine Frage wie lege ich diese Textdatei an?
    2. Woher weiß mein Programm wo die Textdatei liegt?
    3. Welchen Pfad muss ich hier gegebenenfalls angeben?(Jeder Rechner hat ja andere Bezeichnungen)
    4. Wie realisiere ich in der Textdatei einen Zeilenumbruch?



  • ja ich Poste einfach ma nen Code mit Beschreibung! Hättest du aber ma die Suche benutzt hättest du nich Posten brauchen naja egal:

    ofstream examplefile ("c:/text.txt"); //Datei öffnen\erstellen
      if (examplefile.is_open())            //Wenn datei geöffnet
      {
    
        cout << "\n\n";
        cin.getline (tmp1, sizeof(tmp1));  //Zeile in Variable tmp1 einlesen (max 50 Zeichen)
        examplefile << tmp1;           //Inhalt der Variable in File schreiben
        examplefile << "\n";             //Zeilenumbruch in File schreiben
    
        cout << "Schreiben:\n";          //Ja und noch ma das Ganze ;-)
        cout << "\n:";
        cin.getline (tmp2,50);
        examplefile << tmp2;    
        examplefile << "\n";
    
        examplefile.close();          //Datei wieder schliessen
      }
    


  • bigborre schrieb:

    1. Jetzt meine Frage wie lege ich diese Textdatei an?

    std::ofstream

    bigborre schrieb:

    2. Woher weiß mein Programm wo die Textdatei liegt?

    Programmparameter, Konfigurationsdatei, Benutzereingabe, ...

    bigborre schrieb:

    3. Welchen Pfad muss ich hier gegebenenfalls angeben?(Jeder Rechner hat ja andere Bezeichnungen)

    eh?

    bigborre schrieb:

    4. Wie realisiere ich in der Textdatei einen Zeilenumbruch?

    Für welche Plattform?



  • Also, hab natürlich erst gesucht, aber da kam irgendwie nicht das richtige 😮 .
    Also ich arbeite mit Visual C++ 6.0

    finix schrieb:

    3. Welchen Pfad muss ich hier gegebenenfalls angeben?(Jeder Rechner hat ja andere Bezeichnungen)
    eh?

    Naja wenn ich inen Pfad eingeben muss wo er die Datei erstellt.



  • Wenn du es machst wie SEF schon geschrieben hat, dann wird die neue Datei im Verzeichnis deines Programm anglegt.



  • ja hi,

    wenn du

    using namespace std;
    

    benutzt brachst du nur ofstream schreiben!

    Ähh.. ich hab dir aber ein Beispiel zusammen gescheriben welches so auch funktioniert!
    Was meinst du mit dem 3. Punkt?? Meinst du das das File auf jedem Rechner woanders liegt? Wenn ja würde ich noch ne anfrage machen wohin da File gespeichert werden soll z.b:

    char pfad;
    
    cout << "Wohin soll gespeichert werden?\n";
    cout << ":";
    
    cin.getline (pfad,100);
    

    Und dann:

    ofstream examplefile (pfad);
    

    ich bin mir aber nich ganz sicher ob das so geht! Musste ma ausprobieren!

    Gruß

    SEF



  • Ok, aber als was muss ich mir tmp1 und tmp2 definieren?



  • SEF schrieb:

    ja ich Poste einfach ma nen Code mit Beschreibung! Hättest du aber ma die Suche benutzt hättest du nich Posten brauchen naja egal:

    [cpp]
    //...
    //ofstream examplefile ("c:/text.txt"); //Datei öffnen\erstellen
    ofstream examplefile ("c://text.txt"); //Datei öffnen\erstellen

    //...
    //cin.getline (tmp1, sizeof(50)); //Zeile in Variable tmp1 einlesen (max 50 Zeichen)
    cin.getline (tmp1, 50); //Zeile in Variable tmp1 einlesen (max 50 Zeichen)

    //...
    [/cpp]



  • @ssm:

    Was für einen Kompieler benutzt du? Die Änderungen die du an meinem Code vorgenommern hast ist nicht notwendig(aufjedenfall nich bei mir!)! ABER mit dem zweiten Punkt hast du Recht(mein Fehler ;-))



  • Cool, es funktioniert, danke an alle!! 👍 🙂 👍

    EDIT: Noch mal ne Frage, wie kann ich die Textdatei leeren?



  • ssm: // stimmt nicht, entweder \\ oder /, aber nicht //.



  • was meinst du mit:

    nman schrieb:

    ssm: // stimmt nicht

    In welchem Zusammenhang? Meinste wenn ich einen Dateipfad angebe???
    Oder wat??

    Gruß

    SEF



  • nman: mein Fehler 🙄



  • SEF schrieb:

    Meinste wenn ich einen Dateipfad angebe???

    Ja.
    Wäre aber eigentlich leicht ersichtlich gewesen, war schließlich an ssm gerichtet.



  • @nman

    okok wo wir schon alle dabei sind: Mein Fehler(!)und es tut mir leid 😃

    @bigborre

    schau dir ma diese Seite an:

    http://www.cplusplus.com/ref/iostream/ofstream/ofstream.html

    Vielleicht hilft sie dir weiter!

    Gruß

    SEF


Anmelden zum Antworten