LLpresident Geschrieben 6. Dezember 2002 Geschrieben 6. Dezember 2002 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? Zitieren
Guybrush Threepwood Geschrieben 6. Dezember 2002 Geschrieben 6. Dezember 2002 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 Zitieren
LLpresident Geschrieben 6. Dezember 2002 Autor Geschrieben 6. Dezember 2002 das sollte sone art abfrage sein ob die txt-datei zu ende ist. Zitieren
LLpresident Geschrieben 6. Dezember 2002 Autor Geschrieben 6. Dezember 2002 @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 Zitieren
Guybrush Threepwood Geschrieben 6. Dezember 2002 Geschrieben 6. Dezember 2002 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.