Hilfe mit IFSTREAM



  • Hallo!

    Ich habe folgendes Problem: ich will eine Menge Dateien einlesen, sozusagen alles von

    file_0000.txt
    file_0001.txt
    file_0002.txt
    file_0003.txt
    .
    .
    .
    bis file_1000.txt

    Ich weiss vorher aber nicht ob alle Dateien existieren. Daher dachte ich: wenn myInput.open(name);
    myinput==0 zurückgibt, zähle ich einfach den zähler hoch und gehe zur nächsten Datei.
    Folgendes passiert aber: wenn (myinput==0) einmal eingetreten ist ist myInput nicht mehr zu gebrauchen, auch wenn die nächste datei existiert bleibt (myinput==0)

    hier der code wie er bis zur ersten fehlenden datei funktioniert:

    int d1,d2,d3,d4,frame;
    ifstream myInput;

    for(i=0;i<basisnamelength;i++)tmpname[i]=basisname[i];

    do{
    d1=frame/1000;
    d2=(frame-d11000)/100;
    d3=(frame-d1*1000-d2*100)/10;
    d4=frame-d1*1000-d2*100-d3
    10;
    tmpname[basisnamelength]='_';
    tmpname[basisnamelength+1]=48+d1;
    tmpname[basisnamelength+2]=48+d2;
    tmpname[basisnamelength+3]=48+d3;
    tmpname[basisnamelength+4]=48+d4;
    tmpname[basisnamelength+5]='.';
    tmpname[basisnamelength+6]='t';
    tmpname[basisnamelength+7]='x';
    tmpname[basisnamelength+8]='t';
    tmpname[basisnamelength+9]=0;
    myInput.open(tmpname);
    frame++;
    }while(!myInput);

    grüßße,

    primatenreflexe



  • myinput.close() schließt die datei und du kannst sie dann neu öffnen.

    mfg.



  • Und myinput.clear() löscht die Fehlerflags (nur close reicht imho nicht, kann mich aber irren)



  • LordJaxom schrieb:

    Und myinput.clear() löscht die Fehlerflags (nur close reicht imho nicht, kann mich aber irren)

    Stimmt, hab ich vergessen.

    @primatenreflexe
    Am einfachsten wär es natürlich wenn du immer ein neues fstream Objekt pro schleife hast, also es in der Schleife deklarierst.

    mfg.



  • für die Hilfe, ich werde es mal versuchen.
    Wusste nicht das es die "clear" methode gibt.
    um die zweifel auszuräumen: nur close reicht nicht, das hatte ich versucht.
    tschuess, rainer


Anmelden zum Antworten