Auslesen mehrerer Dateien aus x-definierten Verzeichnissen



  • Hallo Leute!
    Ich schreibe ein kleines Programm, dass eine bestimmte Datei aus mehreren Verzeichnissen auslesen soll:

    Verzeichnis:
    threads/threadX/info.dat

    ich habe versucht, mittels for-Schleife, diese Datei auszulesen... Dies hat aber nur mit dem 1. Verzeichniss funktioniert, sprich:

    threads/thread1/info.dat

    ... obwohl 10 Verzeichnisse vorhanden waren ?!

    Mein Quellcode:

    ...
    unsigned int x;
     x = 1;
      for(x;x<=10;x++){
    
    //x in string casten um dir von Info.dat zu deklarieren
    
        char buffer[10]; 
        ostrstream Str(buffer, 10); 
        Str << c << ends; 
        string sx(Str.str());    
    
         string infofiledir;
          infofiledir = "threads/thread";
          infofiledir += sx;
          infofiledir += "/info.dat";
    
    //Auslesen des Files
    
    cout<<endl<<endl;
    cout<<"Thread "<<x<<":"<<endl;
    
      string topic; 
      unsigned int d = 1;
    
      ifstream infofile(infofiledir.c_str()); 
    
       while(getline(infofile, topic) ){
       if (c++ == d)
        cout<<" Topic: \t \t"<<topic<<endl; 
       }
    
    ...
    

    Warum liest er mir nur die erste info.dat aus, obwohl 10 Verzeichnisse mit jeweils einem info.dat vorhanden sind ?

    Hoffe mir kann jemand helfen !
    MFG:
    Datenbankschreiber



  • Datenbankschreiber schrieb:

    //x in string casten um dir von Info.dat zu deklarieren

    char buffer[10];
    ostrstream Str(buffer, 10);
    Str << c << ends;
    string sx(Str.str());

    string infofiledir;
    infofiledir = "threads/thread";
    infofiledir += sx;
    infofiledir += "/info.dat";

    also gecastet wird da nichts und ansonsten schreibt sich der ganze wulst auch besser so:

    ostringstream Str;
    Str << "threads/thread" << c << "/info.dat";
    string infofiledir(Str.str());
    

    strstream ist veraltet. Das heißt jetzt stringstream und befindet sich im Header <sstream>

    Wo dein eigentliches Problem liegt, kann ich dir nicht sagen. Aber du könntest zB. mal vor dem Auslesen überprüfen ob die Datei überhaupt korrekt geöffnet wurde.


Anmelden zum Antworten