Probleme mit eof

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme mit eof

    Hi!

    Folgendes Problem: Ich möchte mir aus einer Textdatei den Text holen und in eine Variable speichern. Ich habe dazu eine Methode HoleText() geschrieben. Das Problem ist nun, dass das Ende der Textdatei nie erreicht wird und eof immer true ist.
    Warum das Textende nie erreicht wird, ist mir komplett schleierhaft.
    Hier der Code:

    Quellcode

    1. CString CWegmessung::HoleText()
    2. {
    3. CString text("");
    4. //Textdatei zum Lesen öffnen
    5. ifstream textdatei("test1.txt", ios::in);
    6. if(!textdatei)
    7. {
    8. //Hier kommt noch Exception-Handling hinzu!
    9. TRACE(_T("Fehler beim Öffnen der Datei!"));
    10. }
    11. //Länge der Textdatei bestimmen
    12. textdatei.seekg (0, ios::end);
    13. length = textdatei.tellg();
    14. textdatei.seekg (0, ios::beg);
    15. //Neues Vektorobjekt mit Größe abhängig von Zeichenanzahl anlegen
    16. char *buffer = new char[length];
    17. //Anzeigen, an welcher Pos. der Cursor sich momentan befindet
    18. int f = textdatei.tellg();
    19. //Speichern der Zeilenanzahl u. speichern des Textes
    20. while(!textdatei.eof())
    21. {
    22. textdatei.getline(buffer, length);
    23. text += buffer;
    24. text.Append(_T(" "));
    25. }
    26. //Schließen der Textdatei
    27. textdatei.close();
    28. delete buffer;
    29. return text;
    30. }
    Alles anzeigen


    Die while-Schleife mit der Bedingung !textdatei.eof() ist die Endlosschleife, die nie verlassen wird.
    Ich wär echt dankbar für ein paar Tipps ;)

    Was ich vergessen habe zu erwähnen: Die Textdatei beinhaltet nur eine Zeile. Ich habs mit mehreren Zeilen versucht und da scheint es zu funktionieren. Komisch, oder?

    mfg enne
  • Hallo,

    reichts dir nicht, wenn du 25-30 durch

    Quellcode

    1. while(getline(textdatei, buffer, '\n') != 0)
    2. {
    3. text += buffer;
    4. text.Append(_T(" "));
    5. }


    ersetzt?
    Willst du nur den Text aus ner Datei rausholen?


    Edit: Danke enne87 für den Multipost: http://www.c-plusplus.de/forum/viewtopic-var-t-is-156842.html