1. 程式人生 > >cin後使用getline的小問題

cin後使用getline的小問題

現象:在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