在c ++中使用两个getline(cin,s)

时间:2014-01-27 04:51:37

标签: c++ string cin getline

我的代码有问题。我输入了一些东西并在屏幕上看到“第一个字符串”后按下了输入但我看到一个空的新行而不是“第二个字符串”。然后我再次输入内容并再次按下输入。然后我没有机会输入第二个字符串并直接获得输出。我尝试过cin.ignore()但它没有用。

# include <iostream>
# include <string>

void main() {
    using namespace std;
    string str1;
    string str2;

    cout << "the first string" << endl;
    getline(cin,str1);
    cout << "the second string" << endl;
    getline(cin,str2);
    cout << str1 << endl << str2 << endl;
}

1 个答案:

答案 0 :(得分:1)

尝试刷新输入缓冲区的此版本。在您的情况下,这可能是也可能不是解决方案,但值得一试:

//code code code
cin.ignore( cin.rdbuf()->in_avail() );
getline(cin,str1);
cin.clear();
cin.ignore( cin.rdbuf()->in_avail() );
getline(cin,str2);
cin.clear();

//code code code