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

本文深入解析了cin.peek()与cin.get()在C++输入流中的使用方法及区别,包括它们如何读取字符、处理文件结束符以及如何在实际编程中应用这些函数。同时,提供了一个示例程序,展示如何使用cin.peek()读取一行整数并存储到容器中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值