Schreiben ans Ende einer Datei?



  • Hallo,

    ich schreibe Daten mittels dieser Funktions in eine txt Datei:

    while (!in.eof()) {
       getline(in, line);
       if (line.find("Field 0: ") != std::string::npos)
       out << line;
    

    Mein Problem ist das die gespeicherten Einträge in der txt Datei von den nachfolgenden Einträgen überschrieben werden. Wie kann ich neue Daten an das Ende der Datei schreiben? Soll mit 'eof' funktionieren, habe aber keine Ahnung wie...

    Schonmal Danke für Eure Hilfe!

    Mathias



  • in dem du bei streams ios_base::app oder bei FILE den modus a+ benutzt ..
    edit : ( beim öffnen deiner Datei )



  • Sorry kann damit leider nicht viel anfangen, wo genau soll ich das eintragen??

    #include <iostream> 
    #include <fstream>
    #include <stdio.h>
    #include <string> 
    #include <stdlib.h> 
    
    using namespace std; 
    
    int main() 
    { 
    
     char szDateiPfad[50]; 
      string line;
    
    for (int i = 1; i<2; i++)
      for (int j = 1; j<2; j++)
      { 
      ifstream in; 
    
      sprintf(szDateiPfad,"C:\\log1-040%d.0%d",i,j);
      printf("OEFFNE DATEI: %s\n<getch>\n",szDateiPfad); getchar();
    
      in.open(szDateiPfad, ios::in | ios::nocreate); 
    
      while (in.good()) 
      {
       getline(in, line); 
       printf("%s\n",line);
       ofstream out;
       out.open("C:\\txtout.txt");
    
       int npos;
       while (!in.eof()) {
       getline(in, line);
       if (line.find("Field 0: ") != std::string::npos)
       out << line;
    
      }
    
    }
    in.close(); 
    printf("Schliessen der Datei %s\n <getchar>\n",szDateiPfad); getchar();
    
    } 
    }
    


  • out.open("C:\\txtout.txt",ios::out|ios::app);
    


  • cool es klappt! vielen dank 🙂

    kann mir vielleicht noch jemand sagen wie ich zeilenweise aus einer datei lesen kann?

    habe nämlich eine datei (rufnr.txt) in der zeilenweise rufnummern stehen, jede rufnummer soll ausgelesen werden. in einer anderen datei (log.txt) suche ich dann nach jeder nummer. kommt eine rufnummer in der log.txt vor, so ist die jeweilige zeile, aus der log.txt, in der die rufnummer steht auszugeben.

    schonmal big thx für eure hilfe!

    Mathias



  • fstream datei(...);
    std::string temp;
    
    while(getline(datei,temp))
      cout<<temp;
    

Anmelden zum Antworten