C++Primer_Chap08_IO库_List02_使用流文件对象_笔记

ifstream input( argv[1] );
ofstream output( argv[2] );
Sales_data total;
if(read( input, total))
{
	Sales_data trans;
	while( read( input, trans))
	{
		if(total.isbn() == trans.isbn() )
			total.combine( trans );
		else
		{
			print( output, total ) << endl;
			total = trans;
		}
	}
	print(output, total) << endl;
}
else
	cerr << "No data?!" << endl;

  再要求使用基类型对象的地方,我们可以用继承类型的对象来替代。即可以在形参为istream和ostream的地方传递fstream对象。

文件模式
in

以读方式打开

out以写方式打开
app每次写操作前均定位到文件末尾
ate打开文件后立即定位到文件末尾
trunc截断文件
binary以二进制方式进行IO
  

  指定文件模式有以下限制:

  • 只可以对ofstream或fstream对象设定out模式
  • 只可以对ifstrean或fstream对象设定in模式
  • 只有当out也被设定时才可设为trunc模式
  • 只要trunc没被设定,就可以设定app模式。在app模式下,即使没有显式指定out模式,文件也总以输出方式打开
  • 默认情况下,即使没有指定trunc,以out模式打开的文件也会被截断(即打开文件的内容丢失)
  • ate和binary模式可用于任何类型的文件流对象。且可以和其他任何文件模式组合使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值