cin.peek() 和 cin.get() 的使用
阿新 • • 發佈:2019-02-04
cin.peek() 的返回值是一個char型的字元,其返回值是指標指向的當前字元,但它只是觀測指標停留在當前位置的字元並不會從輸入流中取出;如果要訪問的字元是檔案結束符,則函式值是EOF(-1) 。
cin.get()用來從指定的輸入流中提取一個字元(包括空白字元),函式的返回值就是讀入的字元。若遇到輸入流中的檔案結束符,
則函式值返回檔案結束標誌EOF(End Of File),一般以-1代表EOF。
cin.get(字元陣列, 字元個數n, 終止字元)
其作用是從輸入流中讀取n-1個字元,賦給指定的字元陣列(或字元指標指向的陣列),如果在讀取n-1個字元之前遇到指定的終止字元,則提前結束讀取。如果讀取成功則函式返回true(真),如失敗(遇檔案結束符) 則函式返回false(假)。
cin.peek() 的一個例子:
從cin讀入一行整數,回車結束,將讀入的整數存入容器中。
#include <iostream> #include <vector> using namespace std; int main() { vector<int> number; int num; while (cin.peek() != '\n' && cin >> num) //&&的左右順序不能反,必須是判斷回車在前面 { number.push_back(num); } int size=number.size(); cout << size << endl; for (int i=0; i < number.size(); i++) { cout << number[i] << " "; } cout << endl; system("pause"); return 0; }
關於while(cin)迴圈的其他一些總結可以參考下面的文章:
--------------------------------------------------------------------------------
Author:Magnum