cin c++ 之后的无限循环
Infinite loop after cin c++
我是 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.
之所以认为是循环,是因为在不写超时的控制台中,我一直可以换行继续输入。
由于您正在使用 JDoodle,控制台将在服务器上等待。如果你不在那里输入任何东西,它就会挂起,直到它最终因为太慢而被杀死。
解决此问题的方法是将您希望在 运行 程序之前键入的文本输入标有 "Stdin Inputs..." 的框中。
或者您可以将 "Interactive mode" 设置为 "On",这将在网站中显示控制台,您可以在其中输入一些文本并按回车键。 (我试过了,有效)。
我是 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.
之所以认为是循环,是因为在不写超时的控制台中,我一直可以换行继续输入。
由于您正在使用 JDoodle,控制台将在服务器上等待。如果你不在那里输入任何东西,它就会挂起,直到它最终因为太慢而被杀死。
解决此问题的方法是将您希望在 运行 程序之前键入的文本输入标有 "Stdin Inputs..." 的框中。
或者您可以将 "Interactive mode" 设置为 "On",这将在网站中显示控制台,您可以在其中输入一些文本并按回车键。 (我试过了,有效)。