vector mit std::ifstream



  • Wieso gibt folgender Code nicht die erste Zeile der Datei aus?
    Hat es etwas mit dem Vector zu tun? (im echten code hat der Vector natürlich mehrere Elemente)

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    int main(void)
    {
        string str;
        vector<std::ifstream> fsv(1);
    
        fsv.at(0).open("Dateiname");
    
        if(fsv.at(0) == NULL)
        {
            cout << "fehler" << endl;
            return 1;
        }
    
        getline(fsv.at(0), str);
    
        cout << str << endl;
    
        return 0;
    }
    

    [ Dieser Beitrag wurde am 24.06.2003 um 12:54 Uhr von amartin755 editiert. ]



  • Würde mich wundern, wenn es überhaupt compiliert. Oder meinst du das mit "gibt die erste Zeile nicht aus" ?

    Die Elemente für eine Vektor brauchen einen Copy-Konstruktor. Das hat aber ein fstream nicht. Du kannst höchstens einen vector mit Zeigern auf fstreams machen.



  • Danke für die schnelle Hilfe.
    Ich hab befürchtet dass ein Vector mit fstreams nicht möglich ist.


Anmelden zum Antworten