我的代码有问题。我输入了一些东西并在屏幕上看到“第一个字符串”后按下了输入但我看到一个空的新行而不是“第二个字符串”。然后我再次输入内容并再次按下输入。然后我没有机会输入第二个字符串并直接获得输出。我尝试过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;
}
答案 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