我正在尝试使用getline读取一串文本。但是,它会打印两次“请输入您的选择”的提示信息:
Please enter your selection
Please enter your selection
如果我输入了无效的文本,它会重新循环,并且每次循环后只打印一次。
while (valid == false) {
cout << "Please enter your selection" << endl;
getline (cin,selection);
// I have a function here which checks if the string is valid and sets it to true
// if it is valid. This function works fine, so I have not included it here. The while
// look breaks correctly if the user enters valid input.
}
有人知道为什么会发生这种情况吗?谢谢。
endl
应该会自动完成这个操作。 - paxdiablocin.ignore(INT_MAX); cin.clear();
吗? - scientiaesthete