C++学习笔记(5)

本文介绍了标准I/O库的相关知识。I/O对象不能复制或赋值,标准库有条件状态,流需无错才能用于输入输出。还提到设置缓冲区模式及刷新方法,介绍了文件流对象的绑定、重新绑定和状态清除,以及多种文件模式及其组合。

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

标准I/O库

---I/O对象不能复制或者赋值。形参和返回对象也不能为流类型。

---I/O标准库有一系列条件状态,例如s.eof()判断是否设置了eofbit值,s.good()判断是否处于有效状态。流必须处于无错误状态,才能用于输入输出。最常见的一种验证方法是while(cin>>word){  do something   }

---setvbuf可以设置缓冲区模式,缓冲区的刷新:cout<<"hello"; sleep(2000);这种情况hello会等2秒后才会打印,而如果使用flush、endl、ends等进行缓冲区的刷新,则能够直接打印,例如cout<<"hello"<<flush;

这种刷新每输出一段就需要刷新:cout<<"hello"<<flush<<"world"<<flush;为了简单可以使用unitbuf操作符和nounitbuf操作符:cout<<unitbuf<<"hello"<<"world"<<nounitbuf;

---文件流对象:ifstream、ofstream、fstream。fstream file;file.open("filename1")。这就实现了file和filename1这个文件的绑定,想要重新与另一个文件绑定需要使用file.close();然后file.open("filename2"),另外file.clear()可以清除上次对文件读取的状态。

---文件模式:两种模式之间可以组合。

in:打开文件时做读操作;

out:打开文件时做写操作;

app:在每次写之前找到文件尾;

ate:打开文件后立即将文件定位在文件尾;(与ios::app存在区别)

trunc:打开文件时清空已存在的文件流;

binary:以二进制模式进行IO操作;(默认时采用的是 文本文件模式)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值