ifstream auf andere quelle setzen??
-
halli hallo,
ich hab da mal ein kleines problem....
ich lese eine datei ein, will aber noch eine andere danach einlesen. um variablen zu sparen schließe ich die datei mit input.close() und setzte sie mit input.open(...) auf eine andere datei. will ich nun eine ausgabe mit cout machen, wird diese einfach ignoriert. Warum und wie könnte ich das umgehen?hier der code
std::ifstream input; input.open(argv[1],std::ifstream::in); sequenceX=FastaFile(input); //diese ausgabe funktioniert noch cout<<sequenceX; input.close(); input.open(argv[2],std::ifstream::in); sequenceY=FastaFile(input); //wird nicht mehr ausgegen?! cout<<sequenceY;
sequenceY wird nicht mehr ausgegeben.....aber warum nur?
das problem könnte ich mit ner anderen variable umgehen....aber es muss doch auch mit dieser gehendanke schonmal stillsen
-
Hallo,
hast du mal die Fehlerflags des ifstream-Objekts geprüft? Die werden von open bzw. close nämlich nicht automatisch zurückgesetzt. Sprich: versuch's mal mit einem input.clear() bevor du das zweite Mal liest.
-
hmm, hab ich noch nicht gemacht.
...aber kannst du bitte beschreiben wie das geht?
danke
-
Man nehme:
stillsen schrieb:
std::ifstream input; input.open(argv[1],std::ifstream::in); sequenceX=FastaFile(input); //diese ausgabe funktioniert noch cout<<sequenceX; input.close(); input.open(argv[2],std::ifstream::in); sequenceY=FastaFile(input); //wird nicht mehr ausgegen?! cout<<sequenceY;
und mache daraus:
std::ifstream input; input.open(argv[1],std::ifstream::in); sequenceX=FastaFile(input); //diese ausgabe funktioniert noch cout<<sequenceX; input.close(); if (!input) input.clear(); input.open(argv[2],std::ifstream::in); sequenceY=FastaFile(input); //wird nicht mehr ausgegen?! cout<<sequenceY;
-
haha
ganz große klasse jetzt gehts danke!