关于c++中getline(cin,str)在cin之后使用

int main()
{
    string str;
    int a;
    cin>>a;
    getline(cin,str);
    cout<<endl;
    return 0;

}

getline(cin,str)的读取原理是将以‘/n’为结束符做为一完整读取的一行,'/n'会读。所以当之前用cin读取一个字符的时候,你会输入一个字符然后点击回车,那么下面getline(cin,str)读的时候会读入这个回车,并判断结束了。

解决的方法是在getline前面加入cin.ignore().这个就会忽略那个回车。

int main()
{
    string str;
    int a;
    cin>>a;

  cin.ignore();

    cin.ignore();
    cout<<endl;
    return 0;

}


你可能感兴趣的:(C++,str,cin,cin.ignore,getlinecin)