6. Dezember 200223 j hey. wie kann ich in einer if-anweisung abfragen ob das file was ich auswerte eof erreicht hat? quelltext: char E_Mail; char Test[255]; int i = 0; ifstream E_Mail_Anzeige("E_Mailaddressen.txt", ios::in); while(!E_Mail_Anzeige.eof()) { E_Mail_Anzeige.get(E_Mail); if(E_Mail_Anzeige == E_Mail_Anzeige.eof()) { break; /*i--; Test[i] = '\0';*/ } Test[i] = E_Mail; memToAddress->Text = Test; i++; } ohne die if-anweisung funktioniert es aber er zeigt das letzte zeichen doppelt an. wie kann ich das unterbinden?
6. Dezember 200223 j Hi, das Problem ist wenn du dir mit E_Mail_Anzeige.get(E_Mail); das letzte Zeichen holst ist er noch nicht am Dateiende, er läuft die Schleife also nochmal durch, merkt bei der get() Funktion das er am Ende ist (holt also nichts mehr), schreibt aber weiter unten nochmal das zuletzt geholte Zeichen an das Ende von Test. Am besten prüfst du bevor du an Test anfügst nochmal ob das Dateiende erreicht wurde. Die Abfrage in deiner if Anweisung verstehe ich aber nicht, was bedeutet E_Mail_Anzeige == E_Mail_Anzeige.eof())? Gruß Guybrush
6. Dezember 200223 j @guybrush hab deinen tip bedacht und es auf folgende weise gelöst: ifstream E_Mail_Anzeige("E_Mailaddressen.txt", ios::in); while(!E_Mail_Anzeige.eof()) { E_Mail_Anzeige.get(E_Mail); if(E_Mail != '\0') { Test = E_Mail; } memToAddress->Text = Test; i++; E_Mail = '\0'; } und funktioniert :marine
6. Dezember 200223 j ich würde aber anstatt auf '\0' zu prüfen einfach if(!E_Mail_Anzeige.eof()) schreiben, weil es könnte ja auch '\0' irgendwo in der Datei stehen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.