Datei zeilenweise einlesen

  • Hi, ich hab das Problem, dass ich eine Datei zeilenweise einlesen muss. Sprich ich habe eine Methode, die dann die gelesene Zeile zurückgeben gibt.


    Jedoch gibt bei mir die Methode immer nur die erste Zeile zurück. Mal etwas Code:


    Code
    1. string MeineKlasse::ZeileEinlesen(FILE* datei)
    2. {
    3. char chTempString[4096];
    4. fscanf_s(datei, "%[^\n]s", chTempString);
    5. string szZeile(chTempString);
    6. return szZeile;
    7. }


    Es muss mit FILE* gemacht werden, also ist es quasi kein C++, sondern nur C.


    Mit fscanf_s(datei, "%s", chTempString); bleibt er am ersten Leerzeichen hängen, er soll aber alles lesen bis zum Zeilenende.


    Kann mir da wer helfen?

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • Darf man fragen warum du FILE benutzten "musst"


    Ich würde es mit ifstream und std getline machen.


    Code
    1. ifstream file("C:\\test.txt");
    2. string line;
    3. getline(file,line,'\n');
    4. cout << line << endl;
    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...

  • weil ich die datei über längere zeit offen halte, immer wieder reinschreibe und rauslese. außerdem ist das halbe programm schon so geschrieben.


    ich habs inzwischen mit fgets hingekriegt.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • im weiteren verlauf muss ich die zeilen auf bestimmte eigenschaften überprüfen, von daher ist fgets schon besser.


    thema ist an sich erledigt, außer jemand hat noch nen mega tollen einfall

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird