003
24.03.2006, 14:54 Uhr
~Manfred75
Gast
|
Okay, hier mal das Problem mit codeteilen.
C++: |
//Dieser switch funktioniert vermutlich richtig, die aufgerufene Funktion(schleife) //funktioniert jedoch nur beim ersten durchlauf
switch (auswahl) { case '*': aktiv = 0; return 1; break;
case 'N': datei.open("daten.txt"); schleife(datei); datei.close(); break;
//Aufgerufen wird dann diese Funktion:
int schleife (ifstream& datei) { Cfall fall; enum zustand zustand; int zaehler=0, onummer=0; char zeichen,puffer[100],antwort[50]; char pname[100], *vergleich; cout<<"Frage"<<endl; cin>>antwort;
for (;;) {
datei.get(zeichen); if (datei.eof()) { return onummer; break; } zustand=eNummer; switch(zeichen) { case '"': if (zustand==eNummer) { puffer[zaehler]='\0'; zaehler=0; fall.nummer=atoi(puffer); zustand=imN; }
if (zustand!=eNummer) { zustand=xml; } break; case '(': puffer[zaehler]='\0'; zaehler=0; strcpy(fall.name,puffer); vergleich=strstr(fall.name, antwort); if (vergleich==NULL) { continue; } else cout<<fall.nummer<<endl; zustand=inId; break; case ')': puffer[zaehler]='\0'; zaehler=0; strcpy(fall.id,puffer);
zustand=xml; break; case '\n': zustand=eNummer; break; default: puffer[zaehler]=zeichen; zaehler++; break;
}
}
}
|
Die Anweisungen scheinen beim zweiten mal nicht ausgeführt zu werden, sie scheint aber aufgerufen zu werden (habe zum Test nach if (datei.eof) ein cout<<"test" reingebaut, welches auch ausgegeben wurde.)
Hoffentlich könnt ihr mir da helfen.
Gruß, Manfred
Bearbeitung von windalf: |
Bitte Codetags verwenden
|
Dieser Post wurde am 24.03.2006 um 14:58 Uhr von Windalf editiert. |