1. 程式人生 > >關於c++中getline(cin,str)在cin之後使用

關於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;

}