C++ vector::_M_range_check Fehler?

Hier ist meine Funktion:

void loadfromfile(string fn, vector<string>& file){
    int x = 0;
    ifstream text(fn.c_str());
    while(text.good()){
        getline(text, file.at(x));
        x++;
    }
    //cout << fn << endl;
}    

Den Wert der fn, dass ich mich übergeben, ist der name einer text-Datei ('10a.txt')
Der Wert der Datei, die ich bin übergeben die wie folgt deklariert wird:

vector<string> file1;

Der Grund, warum ich nicht definieren eine Größe, weil ich nicht denke, dass ich mit Vektoren, Sie sind dynamisch... sind Sie das nicht?

Diese Funktion soll eine bestimmte text-Datei, und speichern Sie den gesamten Inhalt jeder Zeile in einen einzelnen Vektor-Zelle.

Ex. Speichern Sie den Inhalt der ersten Zeile in die Datei.(0)
Speichern Sie den Inhalt der zweiten Zeile in die Datei.(1)
Und so weiter, bis es keine Zeilen mehr in der Textdatei.

Den Fehler:

kündigen, genannt nach dem werfen einer Instanz von 'std::out_of_range'
what(): vector::_M_range_check

Dachte ich, die Prüfung in der while-Schleife sollte verhindern, dass dieser Fehler!

Dank im Voraus für Eure Hilfe.

InformationsquelleAutor Mark S. | 2013-09-13
Schreibe einen Kommentar