Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » 2x ifstream::open() -> funktioniert nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.02.2006, 16:20 Uhr
~Gast
Gast


Hallo.
Kann mir jemand sagen warum folgender Code-Abschnitt nicht funktioniert?
Der Code compiliert (MSVC++) zwar, aber wenn ich das Programm laufen lasse, dann sagt es mir entweder dass es die 2.Datei nicht öffnen kann oder es sagt das nicht, aber es liest auch nix ein (ausgabe vom buffer is leer).
Hat jemand einen Tip? Danke
bye


C++:
char* first = ...         //hier stehen halt in wirklichkeit 2 filenames (inkl. pfad)
char* second= ...     //die auch wirklich beide existieren
char buffer[1024];
ifstream file;

file.open(first);
if(!file){
  cerr << "cannot open " << first << endl;
  exit(-1);
}

while(!file.eof()){
  file.getline(buffer, 1024);
  cout << buffer << endl;
}
file.close();
    
file.open(second);
if(!file){
  cerr << "cannot open " << second << endl;
  exit(-1);
}

while(!file.eof()){
  file.getline(buffer, 1024);
  cout << buffer << endl;
}


Dieser Post wurde am 28.02.2006 um 16:34 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.02.2006, 16:37 Uhr
virtual
Sexiest Bit alive
(Operator)


Tricky:

C++:
while(!file.eof())


Liest ja solange, bis das Dateiende erreicht ist. Dann passieren zwei Dinge: im Stream wird ein eof bit gesetzt und - das ist jetzt wichtiger - ein fail bit. Und solange dieses Fail Bit gesetzt ist, funktioniert nix mehr. Kein lesen, kein Schreiben, kein öffnen, kein garnix.

Also: file.clear() nach der leseschleife aufrufen, dann steigen die Chancen auf Erfolg.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.02.2006, 16:51 Uhr
~Gast
Gast


@virtual: ok. so funktionierts... :-) danke
@FloSoft: thx fürs edit. ich versuch das nächste mal dran zu denken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: