[Gelöst] Problem mit ifstream
-
Hallo!
Bin mit dem folgenden Code auf Kriegsfuss:
ifstream infile; char s[100]; int count = 0; for(int i = 0; i < 100; i++) s[i] = '\0'; infile.open ("datei", ifstream::in); while (infile.good()) s[count++]=infile.get(); stringFromFile->value(s); infile.close();Was ich hier mache ist:
1. ifstream, char-array und counter-Variable deklarieren
2. ifstream-Variable und char-Array initialisieren
3. Datei auslesen bis EOF-Zeichen kommt und zeichenweise ins Array schreiben
4. Den Pointer des Arrays nem FLTK-Widget (Textfeld) übergeben, damit dieses den Text ausgeben kann
5. File schliessenMein Problem ist nun, dass im FLTK-Textfeld folgendes steht:
*** Das steht in der Datei*** ^Jÿ
Das "^Jÿ" am Ende will ich aber nicht! Weiss auch nicht woher das kommt! Hat jemand von euch ne Ahnung woher das kommt? An FLTK kanns nicht liegen, da alles korrekt ist, wenn ich direkt den String
*** Das steht in der Datei ***
übergebe...
Danke und Gruss!
Michi
-
infile.good() sagt das dateiende erst NACH dem lesen eines mist-zeichens an.
vielleicht ist string mit getline einfacher.
//#include <fstream> //#include <string> string s; ifstream infile("datei"); infile.getline(s); stringFromFile->value(s.c_str());
-
Um volkard seins zu erweitern das du bis zum Dateiende liest, reicht folgender Code aus:
string s; ifstream infile("datei"); while(getline(infile,s) { stringFromFile->value(s.c_str()); }
-
Aha... Danke!
Wieder versteht jemand auf der Welt wieder etwas mehr von der Welt

Gruss
Michi