000
20.05.2006, 14:38 Uhr
Steffen
|
Hallo,
ich habe folgende Prolem, und zwar wird an den im Code mit Ausrufezeichen makierten Stellen etwas aus einer Datei eingelesen. Beim ersten mal klappt es Problemlos, dann wird der Stream geschlossen und wieder geöffnet. Jetzt das gleiche nochmal aus der Datei eingelesen werden (zweites mal mit AUsrufezeichen makiert), mit den gleichen Abbruchkriterien, und es geht nicht mehr. Bin so langsam am verzweifeln, da ich den Fehler nicht finde!! Woran könnte es liegen ?
Vielen Dank für jede Hilfe
C++: |
.... int main(int argc, char * argv[]) { ifstream source (argv[1]); ofstream outfl("outList.txt"); ofstream outfa("outArray.txt"); ofstream outfll("outList1.txt"); ofstream outfaa("outArray1.txt"); if (!source) { cout << "kann " << argv[1] << " nicht oeffnen \n"; exit (1); } if (!outfl) { cout << "kann outList.txt nicht oeffnen \n"; exit (1); } if (!outfa) { cout << "kann outArray.txt nicht oeffnen \n"; exit (1); } if (!outfll) { cout << "kann outList1.txt nicht oeffnen \n"; exit (1); } if (!outfaa) { cout << "kann outArray1.txt nicht oeffnen \n"; exit (1); }
int i; ListPriorityQueue ql; ArrayPriorityQueue qa; cout << "Fuelle ListPriorityQueue"<<endl; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Hier gehts
while(source >> i) { ql.enqueue(i); } // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cout << "Fuelle ListPriorityQueue gefuellt"<<endl;
ListPriorityQueue qll = fl(ql); cout << "Leere ListPriorityQueue"<<endl; try { while ( true ) { i = ql.dequeue(); outfl << " " << i; } } catch(QueueEmptyEx e) {}
outfl << endl; cout << "ListPriorityQueue leer"<<endl; cout << "Leere qll"<<endl; try { while ( true ) { i = qll.dequeue(); outfll << " " << i; } } catch(QueueEmptyEx e) {} outfll << endl; cout << "qll leer"<<endl; source.close(); source.open( argv[1] ); cout << "Fuelle ArrayPriorityQueue"<<endl; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Hier geht er nicht mehr in die Schleife rein!!
while(source >> i) { qa.enqueue(i); } // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cout << "ArrayPriorityQueue gefuellt"<<endl; ArrayPriorityQueue qaa = fa(qa); cout << "Leere ArrayPriorityQueue"<<endl; try { while ( true ) { i = qa.dequeue(); outfa << " " << i; } } catch(QueueEmptyEx e) {}
outfa << endl; cout << "ArrayPriorityQueue leer"<<endl; cout << "Leere qaa"<<endl; try { while ( true ) { i = qaa.dequeue(); outfaa << " " << i; } } catch(QueueEmptyEx e) {}
outfaa << endl; cout << "qaa leer"<<endl; }
ListPriorityQueue fl(ListPriorityQueue ql) { ListPriorityQueue qql = ql;
try { for ( int i=0; i<10; ++i) ql.dequeue(); } catch (QueueEmptyEx) {}
return qql; }
ArrayPriorityQueue fa(ArrayPriorityQueue qa) { ArrayPriorityQueue qqa = qa; try { for ( int i=0; i<10000; ++i) qa.dequeue(); } catch (QueueEmptyEx) {}
return qqa; }
|
Dieser Post wurde am 20.05.2006 um 14:43 Uhr von Steffen editiert. |