-2
データがセミコロンで区切られたファイルからデータを読み込もうとしています。例:データをtxtファイルからC++の構造体のベクトルに読み込む
ロードオブザリング:旅の仲間;ジャクソン、ピーター; 2001; 178;9300万; 871530324
上記はすべて一つのエントリです。ファイルの最初の行には、エントリ数を示す番号もあります。各エントリは異なる行にあります。私はこのデータをinfoという構造体のベクトルに読み込もうとしています。構造体の名前は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()を使用してファイルからデータを読み込む際に問題がありますが、私はそれ以外はすべて正しいと思います。
あなたの問題は何ですか?フォーマットされた入力とgetlineを混在させるのが一般的な問題です。あなたが番号を読んだ後、あなたはバッファの行末の文字を残しました。あなたはおそらくそれを無視して、次の行を読み始めるでしょう。 –
私はそれをコンパイルすることができません。 – zam1205
あなたが受け取っているコンパイルエラーが助けになると思いますか?ここでヒントはありますが、文字列を引くことはできません。 –