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)循环的其他一些总结可以参考下面的文章:
while(cin)循环的控制判断: https://blog.youkuaiyun.com/shuai265/article/details/48582943
--------------------------------------------------------------------------------
Author:Magnum