从TXT文件到C 的结构向量中的数据读取

Reading in data from a txt file to a vector of structs in c++

本文关键字:向量 数据 读取 结构 文件 TXT      更新时间:2023-10-16

我正在尝试从数据分隔的数据中读取数据。示例:

《指环王:戒指的奖学金》;杰克逊,彼得; 2001; 178; 93000000; 871530324

上面是所有条目。文件的第一行中也有一个数字,说明条目数。每个条目都在不同的行上。我正在尝试将这些数据读取给一个称为信息的构造的向量。该结构命名为Moviedata。

vector<MovieData> readFile(string fName,MovieData info, 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++){
        getline(fin, info.Title, ';');
        getline(fin,info.Dir, ';');
        getline(fin,info.year, ';');
        getline(fin,info.time, ';');
        getline(fin,info.cost, ';');
        getline(fin, info.revenue);
        info.profit = info.revenue - info.cost;
        movies.push_back(info);
    }
    return movies;
}

我在使用getline()的数据中读取文件中的数据很难,但是我相信我的其他所有内容都正确。

我弄清楚了。改变了一些东西,让一切正常工作。感谢您的帮助。

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;
}