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

时间:2016-09-19 12:58:29

标签: c++ string c++11 cin

我这里有一个奇怪的问题。我使用下面的代码输入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:

因此,字符串都不会得到任何输入。

任何想法可能是什么问题?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

不要使用

cin.ignore();

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

cin>>ws;

在getline之前。 ws表示空格,这将忽略程序中的空格,代码将正常工作。