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",这将在网站中显示控制台,您可以在其中输入一些文本并按回车键。 (我试过了,有效)。