C ++ DO循环很奇怪

时间:2015-08-25 16:04:04

标签: c++ loops

首先,这是我的代码:

string text;
do {
   cout << "Enter text: ";
   ws(cin);
   getline(cin, text);
} while (!text.empty());
// do stuff

我想要我的代码做什么?
- 检查用户输入是否为空;
如果userinput = empty,则循环到开头,他必须输入新文本 如果userinput!=为空,请退出循环并继续执行程序
我的代码在做什么?
- 当我输入文本时,循环从头开始,我必须重新键入文本 - 当我没有输入任何内容并输入enter时,我的程序无限期等待,我需要按Ctrl + C退出。

1 个答案:

答案 0 :(得分:3)

这不是repeat-until,而是do-while循环,请使用:

string text;
do {
   cout << "Enter text: ";
   ws(cin);
   getline(cin, text);
} while (text.empty());
//      ^^

基本上如果条件是true,那么它会再次循环,否则会打破循环。在你的情况下,如果字符串不为空则循环,如果字符串为空则断开循环。

相关问题