首先,这是我的代码:
string text;
do {
cout << "Enter text: ";
ws(cin);
getline(cin, text);
} while (!text.empty());
// do stuff
我想要我的代码做什么?
- 检查用户输入是否为空;
如果userinput = empty,则循环到开头,他必须输入新文本
如果userinput!=为空,请退出循环并继续执行程序
我的代码在做什么?
- 当我输入文本时,循环从头开始,我必须重新键入文本
- 当我没有输入任何内容并输入enter时,我的程序无限期等待,我需要按Ctrl + C退出。
答案 0 :(得分:3)
这不是repeat-until
,而是do-while
循环,请使用:
string text;
do {
cout << "Enter text: ";
ws(cin);
getline(cin, text);
} while (text.empty());
// ^^
基本上如果条件是true
,那么它会再次循环,否则会打破循环。在你的情况下,如果字符串不为空则循环,如果字符串为空则断开循环。