txt-Datei einlsen



  • Hi Leute,

    von C++ habe ich leider nicht sonderlich viel Ahnung. Um eine txt-Datei einzulesen habe ich mir folgenden Code zusammengestückelt:

    [cpp ]#include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    int main(int argC, char ** argV)
    {
    ifstream datein; //Erstellung der Klasse ifstream
    string datei;
    char zeile[500]; //Bytes große Array
    char zeichen;
    if(argC > 1)
    {
    datei = argV[1];
    }
    else
    {
    cout <<"Bitte geben Sie den Pfad f\x81""r die einzulesende Datei an!"<< endl;
    cin >> datei;
    }
    datein.open(datei.c_str()); //Anwendung der Methode c_str()
    if (datein == false)
    {
    cerr <<"Datei konnte nicht ge\x94""ffnet werden"<< endl;
    return 0;
    }

    while (datein.eof() !=true) //Anwendung der Methode .eof()
    {

    datein.get(zeile, sizeof(zeile)/sizeof(zeile[0])); // Der Array endet immer mit einer Null, nicht ASCII-Null!
    cout << zeile;
    zeichen = zeile[0];
    }
    datein.close(); //Anwendung der Methode .close()
    return 0;
    }
    [/cpp ]

    Leider liest er damit nur die erste Zeile meiner txt-Datei ein. Ich hab da sicherlich was grundsätzliches nicht verstanden.
    Kann mir jemand dazu helfen?

    Danke!



  • Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC mit dem Visual C++ in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Schau mal in die FAQ: Dateien und Ströme



  • Wie sieht denn deine Eingabdatei aus? Wenn die nur aus 2 Zeilen besteht versuch mal in der letzten Zeile noch ein \n ->also einaml enter anuzhängen.
    Sonst versuche:

    vorlesen
    solange nicht EOF
    {
    verarbeiten der Zeile
    nachlesen
    }

    wobei vorlesen und nachlesen mit einem datein.getline realisiert wird. SO wird die ganze zeile in deine char * zeile gelesen und in verarbeiten suchst du dir die zeichen raus, wie du sie auch immer brauchst. Kannst mit ner Schleife die zeile durchlaufen 🙂


Anmelden zum Antworten