C++ getline();下面显示一个

C++ getline(); displays one below

我这里有一个奇怪的问题。我使用以下代码获得 2 个字符串作为输入:

std::string input1, input2;
std::cout<<"Please enter name:";
std::getline(std::cin, input1);
std::cout<<"Address: ";
std::getline(std::cin,input2);

我遇到的问题是,不是一次显示一个,而是同时显示两个,因此输出如下所示:

Please enter name: Address:

因此,两个字符串都没有得到任何输入。

知道问题出在哪里吗?

尝试在 getline 之前使用 cin.ignore() // 忽略用户按下回车键后留下的 \n

不要使用

cin.ignore();

因为在循环中它也会忽略你需要的输入。使用

cin>>ws;

getline 之前。 ws 表示白色 space 这将在您的程序中忽略白色 space 并且代码可以正常工作。