getline()函數讀取整行,它使用通過回車鍵輸入的換行符來確定輸入結尾。
cin.getline(Arr, 20) // Arr為用來輸入行的數組的名稱;
//20包括19個字符和1個空字符
//20包括19個字符和1個空字符
2. 面向行的輸入:get()
與getline()的工作方式類似,接受參數相同,但get()並不再讀取並丟棄換行符,而是將其留在輸入隊列中。可如下使用:
cin.get(Arr1, ArSize); // 讀第一行
cin.get(); // 讀掉換行符
cin.get(Arr2, ArSize2); // 讀第二行
////////////////////////////////////////或者
cin.get(Arr1, ArSize).get();
cin.get(Arr2, ArSize2);
cin.get(); // 讀掉換行符
cin.get(Arr2, ArSize2); // 讀第二行
////////////////////////////////////////或者
cin.get(Arr1, ArSize).get();
cin.get(Arr2, ArSize2);
3. 字符串輸入:getline(cin, srt)
getline(cin, str); // str為string類型 getline()需要#include<string>
4. 輸入時遇錯誤類型時
int int nTemp;
cout << "Please enter handicap(int): " << endl;
while (!(cin >> nTemp))
{
cin.clear();//重置輸入,如果省略這條,程序將拒絕繼續讀取輸入
while (cin.get() != '\n')//本循環使用 cin.get() 來讀取尾行之前的所有輸入,從而刪除這一行
continue;
cout << "Please input a integer: ";
}
cout << "Please enter handicap(int): " << endl;
while (!(cin >> nTemp))
{
cin.clear();//重置輸入,如果省略這條,程序將拒絕繼續讀取輸入
while (cin.get() != '\n')//本循環使用 cin.get() 來讀取尾行之前的所有輸入,從而刪除這一行
continue;
cout << "Please input a integer: ";
}