stream一些常用函数

本文详细介绍了C++中stream输入的几种方式,包括getline和>>操作符的特点与使用方法,并探讨了如何通过cin.ignore和cin.peek进行stream处理,以及如何利用cin.clear清除错误标志。

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

一、stream输入

1、getline

istream& getline ( istream &is , string &str , char delim );

对于getline(cin,s),getline默认情况下以回车('\n')作为结束符。在遇到终结符delim后,delim会被丢弃,不存入str中。但是在开头遇到结束符时会立即返回。在下次读入操作时,将在delim的下个字符开始读入。

也存在成员函数如:cin.getline(char* cha,int num,char f); 向cha中输入num个字符,输入过程中达到num个数或者提前遇到f字符,输入结束。


2、>>

会忽略开头的空白符(空格、‘\n’、tab);遇到空白符返回,每次读入一个词。而在输入结束时,结束符会留在输入流中。所以>>读取完之后如果又要用用其他方法读取(如getline),需要先ignore掉'\n'等。


二、stream处理

1、cin.ignore(),cin,ignore(count), cin(count, delim)

cin.ignore()、cin.ignore(1)忽略一个字符;cin.ignore(1024,'\n'),在遇到换行后(换行符也会被舍弃)或者忽略了1024个字符后不再忽略。

返回值均返回stream。


2、cin.peak()

返回下一个将读入的字符,但是不是真的读出来,下一次读取结构便是这个字符。用于测试。如果不能读入任何字符,返回EOF。


三、steam状态

1、cin.clear()

清除所有错误标志,使得可以重新输入。通常与cin.sync()配合使用(先clear标志,再sync),cin.sync()用来清空cin缓冲区里面未读取的数据。(cout.flush()是将输出缓冲区数据刷新到设备或文件中,与此不同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值