我是C ++的新手。很抱歉,如果这个问题重复出现,但我找不到类似的问题。
非常基本的代码:
string s;
while (cin >> s)
cout << s << endl;
我希望在按下键盘上的Return键时循环停止。 但是它永远不会停止。...
我知道cin在遇到无效输入时会返回false,例如,如果我们使用
int i;
while (cin >> i)
cout << i << endl;
然后,当我们输入非整数时,循环结束。
但是在使用字符串的情况下,如何停止该循环?
答案 0 :(得分:3)
while (cin >> s) { ... }
就会循环。尝试输入失败时,它将退出循环。
有两个可能的失败原因:
假设输入本身是有效的,为了终止循环,输入流必须到达末尾。
当输入实际上是一个文件时,识别结尾很容易:当字符用完时,它位于文件的结尾。当它是控制台时,并不是那么容易:您必须做些人工操作来指示输入的结束。
这样做,您必须告诉终端应用程序(控制控制台)没有更多输入,然后终端应用程序将告诉您的程序它在输入的结尾。
您的操作方式取决于终端应用程序,该应用程序通常是操作系统的一部分。
答案 1 :(得分:1)
您可以向EOF发出信号 通过 CTRL-D 或 CTRL-Z 。
或者,您可以检查特定的字符串来中断循环,如下所示:
string s;
while (cin >> s)
{
if(s == "end")
break;
cout << s << endl;
}