将数据从txt文件读入c ++中的结构向量

时间:2017-12-06 04:45:25

标签: c++

我正在尝试从数据以分号分隔的文件中读取数据。例如:

指环王:戒指的团契;杰克逊,彼得; 2001; 178; 93000000; 871530324

以上是一个条目。文件的第一行中还有一个数字表示条目数。每个条目都在不同的行上。我试图在这个数据中读取一个名为info的结构向量。该结构名为MovieData。

public void addPage(Fragment fragment) {
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.add(R.id.content_main, fragment);
            ft.addToBackStack(null);
            ft.commit();
        }

public void forwardPage(final Fragment fragment) {

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.content_main, fragment);
        ft.addToBackStack(null);
        ft.commit();
    }

我在使用getline()读取文件中的数据时遇到问题,但我相信其他一切都是正确的。

1 个答案:

答案 0 :(得分:-1)

我想出来了。改变了一些东西,让一切都运转起来。谢谢你的帮助。

vector<MovieData> readFile(string fName, struct MovieData, int& numOfMovies){
    vector<MovieData> movies;
    ifstream fin;
    fin.open(fName);

    fin >> numOfMovies;
    cout << "Number of Movies: " << numOfMovies << "\n";

    for(int i=0;i<numOfMovies;i++){
        movies.push_back(MovieData());
        getline(fin, movies[i].Title, ';');
        getline(fin,movies[i].Dir, ';');
        fin >> movies[i].year;
        fin.ignore();
        fin >> movies[i].time;
        fin.ignore();
        fin >> movies[i].cost;
        fin.ignore();
        fin >> movies[i].revenue;
        fin.ignore();
        fin >> movies[i].profit;
        movies[i].profit = movies[i].revenue - movies[i].cost;

    }

    return movies;
}