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.txtIch 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-d310;
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