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 
#include 

using namespace std;

int main()
{
	vector 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)循环的其他一些总结可以参考下面的文章:

while(cin)循环的控制判断: https://blog.csdn.net/shuai265/article/details/48582943
 

--------------------------------------------------------------------------------

Author:Magnum

 

你可能感兴趣的:(C/C++)