Fehler beim Dateienpfad erstellen
-
Ich habe das Problem das ich 1000 Files einlesen.
Die sind folgendermassen verteilt:
10 Ordner mit jeweils 100 dateiender Dateienphad ist wie folgt: corel/0/0.ppm
Beim mir wird die erste Datei richtig eingelesen jedoch, fängt er mir an folgendes zu machen "corel/00/01.ppm", obwohl es eigentlich "corel/0/1.ppm" sein sollte.
Hier ist der Quelltext:
stringstream directory, datafile; string filepath; int numberDirectory=0; numberFile=0; for(numberDirectory; numberDirectory<10; numberDirectory++) { for(numberFile; numberFile<100 && totalFileNumber<1000; numberFile++) { //readfile directory << numberDirectory; datafile << numberFile; filepath = "corel/" + directory.str()+ "/" + datafile.str() + ".ppm"; cout << filepath << endl; //.. } }
-
Evtl die strstreams nicht leer gemacht?
#include <iostream> #include <sstream> int main() { using namespace std; ostringstream streamFilepath; for(int numberDirectory=0; numberDirectory<10; numberDirectory++) { for(int numberFile=0; numberFile<10; numberFile++) { streamFilepath.str(string());//Oder den streamFilePath erst hier definieren streamFilepath<<"corel/"<<numberDirectory<<'/'<<numberFile; //readfile cout << streamFilepath.str() << endl; } } }
-
Wenn du in den Stream immer mehr reinschreibst, dann wird er immer länger. Erstell einen neuen Stream in der Schleife. Und damit du nicht Unmengen Streams dauernd neu erzeugen und vernichten musst, kürz noch ab:
for(numberDirectory = 0; numberDirectory<10; numberDirectory++) { for(numberFile = 0; numberFile<100 && totalFileNumber<1000; numberFile++) { stringstream full_name; full_name << "corel/" << numberDirectory << '/' << numberFile << ".ppm"; cout << full_name.str() << endl; } }Ich vermute auch mal, dass deine innere for-Schleife nicht das tat, was du wolltest und habe dies korrigiert.