cin後使用getline的小問題
阿新 • • 發佈:2019-01-03
現象:在cin後使用getline時,getline無法讀取輸入的字串
解決方法:1.不在cin後使用getline
2.在cin後進行一次getline的dummy讀操作,程式碼如下
string dummy;
getline(cin, dummy);
示例:
愚蠢的博主在寫小程式時敲了如下程式碼:
#include <iostream> #include <string> #include <sstream> using namespace std; int main() {int num;cin >> num;cout <<執行結果如下:"test" << endl; string a = ""; getline(cin, a); cout << a << endl; cout << "test2" << endl;return 0; }
>>2
<<test
<<
<<test2
<<
Process finished with exit code 0
之後經過一番折騰,最後在google中找到了解決方法,重寫後的程式碼如下:
#include <iostream> #include執行後如下:<string> #include <sstream> using namespace std; int main() {int num; string dummy; cin >> num; getline(cin,dummy); cout << "test" << endl; string a = ""; getline(cin, a); cout << a << endl; cout << "test2" << endl;return 0; }
>>2
<<test
>>hehe
<<hehe
<<test2
Process finished with exit code 0
參考來源:http://mathbits.com/MathBits/CompSci/APstrings/APgetline.htm