我一直在寻找几个小时,但还没有遇到我的问题。我正在从文件中读取第一行将是电影的数量,之后的行将是电影片名,导演等。
示例:
2
Friday Night Lights: Upcoming;Bond, James;2061;128;93000000;871530324
Friday Night Lights: Upcoming;Bond, James;2061;128;93000000;871530324
但我似乎无法使getline功能正常工作。我尝试了几种不同的方式,但它只是不起作用。
struct MovieData{
string movieTitle;
string director;
int yearReleased;
double runningTime;
double costOfProduction;
double revenueGenerated;
double profitOrLoss;
};
void storingMovieData(ifstream file, MovieData array[], int numberOfMovies);
int main(){
char fileName[50];
MovieData array[];
cout << "Enter file name: ";
cin.getline(fileName, 50);
int numberOfMovies;
ifstream file(fileName);
file >> numberOfMovies;
storingMovieData(file, array, numberOfMovies)
file.close();
return 0;
}
void storingMovieData(ifstream file, MovieData array[], int numberOfMovies){
for(int i = 0; i < numberOfMovies; i++){
getline(file, array[i].movieTitle, ';');
getline(file, array[i].director, ';');
getline(file, array[i].yearReleased, ';');
getline(file, array[i].runningTime, ';');
getline(file, array[i].costOfProduction, ';');
getline(file, array[i].revenueGenerated, ';');
getline(file, array[i].profitOrLoss, ';');
}
}
非常感谢任何有关我的问题的帮助!
答案 0 :(得分:0)
这些是您问题的根源:
int yearReleased;
double runningTime;
double costOfProduction;
double revenueGenerated;
double profitOrLoss;
getline()
不接受double / int。
您可能想要读入一些临时字符串,然后在转换为double后分配给struct。