C++: Lesen .txt-Inhalt und speichern Sie in 2D-array

Also mich und meine groupmates plötzlich haben einige clutchwork bei der hand. Ich wurde beauftragt, eine import-Funktion, liest eine Textdatei, die wie folgt aussieht, und speichern Sie es zu einem 2D-array:
C++: Lesen .txt-Inhalt und speichern Sie in 2D-array

Sind die Spalten Tab-getrennt. Als dieser kam plötzlich, nicht über die gesamte Projekt-Datei, die mit mir und ich bin nirgendwo in der Nähe meiner alten, verlässlichen, ich habe versucht, beschwörend in die generische Art und Weise möglich:

void signal::import_data(string filename){
    ifstream file;

    file.open(filename.c_str());

    if(file.fail()){
        cerr << "file open fail" << endl;
    }else{
        while(!file.eof)
        {
            for(int j = 0; j < NumCols; j++){
                for(int i = 0; i < NumRows; i++){
                    file >> _data[j][i];
                }
            }
        }
    }
    file.close();
}

Tue ich das richtige? Ich bin nicht so sicher, ob das streaming, wie dies umgangen werden kann-tabs, oder kann es?

Vermeiden Sie diesen Fehler : while(!file.eof),und Lesen Sie, wie if ( !(file >> _data[j][i])) break;
Verstanden! Aber auch der rest der code in Ordnung? Auch, ganz ehrlich? Ich weiß wirklich nicht, warum while(!Datei.eof) ist eine praktikable option, einfach Fragen, wenn Ihr mir sagen könnt warum
Ich glaube, Sie sollten es vermeiden while (!file.eof()) denn wenn das token Lesen aus dem input-stream, wenn dabei file >> ... kann nicht analysiert werden, in eine ganze Zahl, dann ist der input-iterator wird nicht Voraus. Wenn das der Fall ist, können Sie nie erreichen das Ende der Datei.

InformationsquelleAutor Erasmus | 2013-01-26

Schreibe einen Kommentar