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.datich 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.