IO类

本文深入解析C++中用于输入输出操作的关键概念,包括cin、cout、cerr对象及其相关操纵符的功能,以及如何在程序中高效地进行输入输出操作。

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

cin是istream对象,从标准输入读取数据
cout是ostream对象,从标准输出写入数据
cerr是ostream对象,通常用于输出程序错误信息,写入到标准错误
“>>”运算符,用来从一个istream对象读取输入信息
“<<”运算符,用来向一个ostream对象写入输出信息

继承机制使我们可以声明一个特定的类继承自另一个类,我们通常可以将一个派生类对象当作其基类对象使用.

IO对象无拷贝或赋值操作,因此我们也不能将形参或返回类型设置为流类型.进行IO操作的函数通常以引用方式传递和返回流.读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的.

程序崩溃,输出缓冲区不会被刷新.
如果想在每次输出操作后都刷新缓冲区,我们可以使用unitbuf操作符:
cout << unitbuf; //所又输出操作后都会立即刷新缓冲区
cout << nounitbuf; //回到正常的缓冲方式.

导致缓冲刷新的几种可能:
程序正常结束
缓冲区满
使用操纵符 endl,flush,ends,unitbuf等
一个输出流关联到另一个流(使用cout之后,在使用cin的时候,会将缓冲区刷新)

当一个fstream对象被销毁时,close会自动被调用.

ifstream对象从一个给定文件读取数据.
ofstream对象向一个给定文件写入数据.
fstream对象可以读写给定文件.

cin数据之间是用空格分开的,想要保留数据之间的空格可以用getline函数
比如:输入 hello everyone
cin >> buffer –> helloeveryone
getline(cin, buffer) –>hello everyone

保留被ofstream打开的文件中已有数据的唯一方法是显示指定app或in模式.

ifstream和ofstream的使用方法:
ifstream ifs(“file.txt”);
while(getline(ifs, buffer))
cout << buffer;

ofstream ofs(“file.txt”)
while(getline(cin, buffer))
ofs << buffer;

相应的istringstream和ostringstream 用法相似.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值