我是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.
我认为它是循环的原因是在没有写入超时的控制台中,我可以继续一直输入新行。
答案 0 :(得分:2)
由于您使用JDoodle,控制台将在服务器上等待。如果你没有在那里输入任何东西,它就会挂起,直到最后因为太慢而被杀死。
解决此问题的方法是在将程序运行到标有“Stdin Inputs ...”的框之前输入要输入的文本。
或者,您可以将“交互模式”设置为“开启”,这将在网站中显示控制台,您可以在其中输入一些文本并按Enter键。 (我试过,它有效)。