Wortweise aus Datei in einen Container einlesen



  • Hallo,

    ich möchte von einem geöffneten ifstream einlesen und den Inhalt wortweise in eine Liste pushen. Öffnen kann ich die Datei, aber wie kann ich Wort für Wort durchlaufen?

    Gruß,
    the_other_one



  • std::string word;
    in >> word;
    
    con.push_back(word);
    


  • hach doch so einfach.
    Dank dir!



  • ... oder als Einzeiler:

    vector<string> con(istream_iterator<string>(in), istream_iterator<string>());
    

    (OK, die Zeile "#include <iterator>" kommt noch dazu 😉 )

    Gruß,

    Simon2.



  • auch dir meinen Dank und den include hab ich sowieso schon 🙂
    Aber für was ist hier der zweite Parameter? Bestimmung der Objektgröße?



  • the_other_one schrieb:

    auch dir meinen Dank und den include hab ich sowieso schon 🙂
    Aber für was ist hier der zweite Parameter? Bestimmung der Objektgröße?

    Der Konstruktor kopiert "von - bis" und ein "ungebundener" input_iterator (der erste ist an in "gebunden", der zweite ungebunden) ist sowas wie "end()".

    Mal zum Vergleich:

    void f(list<int>& myList) {
       vector<int> myVec1(myList.begin(), meyList.end()); // kopiert alle Elemente von myList in myVec
          // von .begin() bis end()
       vector<int> myVec2(istream_iterator<int>(inFile), istream_iterator<int>())
    ...
    

    Gruß,

    Simon2.



  • alles klar, danke für die Erklärung.


Log in to reply