下面是代碼:問題使用的CIN兩次
string str;
cin>>str;
cout<<"first input:"<<str<<endl;
getline(cin, str);
cout<<"line input:"<<str<<endl;
其結果是,函數getline從未暫停用戶輸入,因此第二輸出總是空的。我在第一次調用「cin >> str」之後意識到'\ n'仍然存儲在cin中(使用cin.peek()來檢查),它立即結束getline 。解決方案將在第一次使用和第二次使用之間添加一行: cin.ignore(numeric_limits::max(), '\n');
但是,我仍然不明白,爲什麼在第一次調用後留下'\ n'?什麼是流水號& operator >>真的嗎?
一些更多的挖掘揭示描述如何微妙的是固定: 「提取結束時** **旁邊字符是一個有效的空白或空字符,或者給最終文件已達到。「 – 2010-03-26 20:36:15