1. 程式人生 > >cin.peek() 和 cin.get() 的使用

cin.peek() 和 cin.get() 的使用

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