在C ++中读取一些整数,然后读取一行文本

时间:2020-03-06 15:02:38  来源:igfitidea点击:

我正在C ++程序中读取输入。首先是一些整数,然后是一个字符串。当我尝试使用getline(cin,stringname);读取字符串时,它不会读取用户键入的行:而是从用户输入整数后按Enter的那一行变为空行。

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

如何清除cin(cin.clear()不起作用),以使字符串不会用" enter"键填充自身?

这是正常的输入接收,在代码顶部没有什么特别的,
我有这样的问题,但我忘记了解决方案
我需要以某种方式清除cin,以使字符串不会被" enter"键填充。

解决方案

我认为int cin不会在句子前读取换行符。 cin跳过前导空格,并在遇到非数字(包括空格)时停止读取数字。

所以:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

可能对你有用