1

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

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

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

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

4

1 回答 1

2

我认为您的整数 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);

可能对你有用

于 2008-10-02T19:22:49.197 回答