Datei zeilenweise in Array einlesen



  • Hallo,

    ich möchte den Dateiinhalt zeilenweise in ein Array laden.

    Also, jedes Arrayelement soll eine Zeile beinhalten.
    Wie ist dies am leichtesten zu realisieren? Hab' anhand der Suchfunktion leider nichts finden können.
    Wäre dankbar für nützliche Antworten mit evtl. Code.



  • fopen()
    fclose()
    malloc()
    fgets()
    realloc()
    und free()

    Mit diesen Funktionen lässt es sich realisieren.



  • Argh, sorry - dachte wir sind im C Forum.

    In C++ geht es mit:

    std::ifstream
    std::string
    std::vectorstd::string
    std::getline();



  • So weit war ich auch schon...

    Ein Code-Schnipsel wäre hilfreich.
    🙂
    Ich weiß nämlich nicht genau wie das jetzt alles zu realisieren ist.



  • Naja, fangen wir an.

    Wir müssen mal die Datei öffnen:

    ofstream file("whatever_file_name");
    

    OK, das war nicht schwer.
    Woher wissen wir ob wir am ende sind?
    if(file)
    sagt es uns.

    OK, nun brauchen wir eine schleife:

    for(;file;)
    {
    }
    

    OK, nun müssen wir noch einlesen:

    for(string line;getline(file, line);)
    {
    }
    

    OK, doch wie geben wir das in den vector?
    ah -> push_back

    for(string line; getline(file, line); )
    {
      lines.push_back(line);
    }
    

    Ah, sehr schön. So macht C++ spass.



  • Ok danke 🙂



  • Shade Of Mine schrieb:

    Naja, fangen wir an.

    Wir müssen mal die Datei öffnen:

    ofstream file("whatever_file_name");
    

    Mit "ofstream" wird das nix - "ifstream" hilft...


Log in to reply