我正在读取 C++ 程序中的输入。首先是一些整数,然后是一个字符串。当我尝试使用 getline(cin,stringname);
读取字符串时,它不会读取用户键入的行:相反,我得到一个空行,从用户按下 开始输入整数后输入。
cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String
我如何清除 cin
(cin.clear()
不起作用)以便字符串不会用“enter”键填充自身?
这是一个正常的输入接收,代码顶部没有什么特别的,
我有这样的问题,但我忘记了解决方案
我需要以某种方式清除 cin
,这样字符串就不会被“enter”键填充。
最佳答案
我认为你的 cin of the ints 没有读取句子前的新行。 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);
可能对你有用
关于c++ - 读取一些整数然后在 C++ 中读取一行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/164022/