cin c ++之后的无限循环

时间:2017-09-08 11:55:29

标签: c++ jdoodle

我是c ++的新手,所以这让我很困惑。

此代码似乎在std::cin之后无限循环:

#include <iostream>
#include <string>

using namespace std;

int main() {
    cout << "My name is Martin. What's yours?" << endl;
    string name;
    cin >> name; //It seems to loop around here
    cout << "Ah, so you are" << name << "." << endl; //It doesn't print this message

return 0;
}

谢谢!

编辑:我不确定我理解你的答案,但是当你输入一个名字然后按回车键时,它什么也没做。终端只是继续到下一行,让你也可以写一些东西。它无限地执行此操作,有点像您只需按下输入而没有任何文本。

编辑2:我的坏,我应该尽力清理事情。这就是JDoodle控制台中的内容:

My name is Martin. What's yours?


 JDoodle - Timeout -  Some common reasons for Timeout 
Your Program may have a endless loop 
Please check the program and try again or contact JDoodle support at jdoodle@nutpan.com for more info.

我认为它是循环的原因是在没有写入超时的控制台中,我可以继续一直输入新行。

1 个答案:

答案 0 :(得分:2)

由于您使用JDoodle,控制台将在服务器上等待。如果你没有在那里输入任何东西,它就会挂起,直到最后因为太慢而被杀死。

解决此问题的方法是在将程序运行到标有“Stdin Inputs ...”的框之前输入要输入的文本。

或者,您可以将“交互模式”设置为“开启”,这将在网站中显示控制台,您可以在其中输入一些文本并按Enter键。 (我试过,它有效)。