首先,这是我的代码:
string text;
do {
cout << "Enter text: ";
ws(cin);
getline(cin, text);
} while (!text.empty());
// do stuff
我希望我的代码能做什么?
- 检查用户输入是否为空;
如果用户输入为空,则返回到循环的开头,要求用户重新输入文本。
如果用户输入不为空,则跳出循环并继续运行程序。
我的代码现在在做什么?
- 当我输入文本时,循环从头开始,并且我必须重新输入文本。
- 当我没有输入任何内容而只是按下回车键时,我的程序将一直等待,我需要按Ctrl+C来退出。
while (text.empty())
? - Sorenws
函数会吃掉回车符,所以如果只是输入回车符,你永远无法结束 while 循环 -- 最好不要使用ws
函数,而是在测试 while 循环前先去除text
中的空格。 - Soren