这是我的程序的功能。 当你使用getline(cin,something)它应该得到整行不是吗?
void readMovieData(MovieData *pMovie, int const size)
{
string title;
string director;
int year;
int time;
for(int i = 0; i < size; i++)
{
cout << "\nPlease enter the Title of the movie: ";
getline(cin, title);
pMovie[i].setTitle(title);
cin.ignore();
cout << "Please enter the Director name of the movie: ";
getline(cin, director);
pMovie[i].setDirector(director);
cin.ignore();
cout << "Please enter the year it was released: ";
cin >> year;
if(year >= 1900 && year <= 2004)
pMovie[i].setYear(year);
else
{
cout << "Please enter a year between 1900 and 2004." << endl;
year = 0;
system("PAUSE");
break;
}
cout << "Please enter the time the movie last: ";
cin >> time;
if(time > 0 && time < 14400)
pMovie[i].setTime(time);
else
{
time = 0;
cout << "Please enter a time between 0 and 14400 in minutes." << endl;
system("PAUSE");
break;
}
}
}
当我运行程序并输入两个或更多单词时,似乎无效。我的int接受除第一个之外的单词的输入。我不明白这是什么问题。
这是我的输出
上个月你看了多少部电影? 2
请输入您的电影信息!
请输入电影的标题:bobby lee
请输入影片的导演名称:非常可怕
请输入发布年份:请输入1900年至2004年之间的年份。
按任意键继续。 。
以下是您的电影的信息!
你所有电影的平均时间是:0
你看过的最古老的电影叫做......
名称:
导演:obby lee发行年份:0
您观看过的最新电影名为......
名称:
导演:obby lee发行年份:0
进程返回0(0x0)执行时间:11.962秒 按任意键继续。
我希望程序能够无错误地获得标题的全名(1个或多个单词)和导演的全名(1个或多个单词)。