读取一些整数然后用C ++中的一行文本

时间:2008-10-02 19:07:17

标签: c++ string input newline iostream

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

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

如何清除cincin.clear()不起作用),以便字符串不会用“回车”键填充?

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

1 个答案:

答案 0 :(得分:2)

我认为你的咒语不是在句子之前阅读新行。 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);

可能适合你