C++ 文件读写

本文介绍了使用C++进行文件读写的正确方法,包括如何利用fstream、ofstream和ifstream类进行文本和二进制文件的操作,并提供了注意事项及常见问题的解决方案。

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

1、引入fstream。#include <fstream>

2、定义stream对象

1> ofstream fOut;

2>ifstream fIn;

注:

(1) 对象的初始化的时候,需确认好要写入文件的是文本还是二进制。例如,想要写入文件一段视频帧数据,则需要用二进制模式打开,否则写入后的数据,可能会造成文件无法播放。文本模式,在写入文件数据时,系统会自动做一些转换操作。

(2) fOut未打开,不要调用close方法。否则会造成文件写入失败。

例:以下代码看似很正常,执行完毕后,没有报任何错误。但是,打开写入的文件,发现,文件内容为空。如果将fOut.close()这行代码去掉,则正常。

ofstream fOut;

fOut.close();// 此处在文件未打开前,调用了close方法。

fOut.open("d://123.dat", ios::binary);

if( fOut.is_open() ){

    fOut.clear();// 此处使用clear方法,清理数据。防止上次打开并关闭后,使用同一对象打开另一文件时,无法读写数据。(主要是fIn的时候,不清理,无法读取新打开的文件。调用fIn.eof()方法,总返回false)

    for( int i=0; i<100; i++ )

        fOut.write("123\r\n", strlen("123\r\n"));

}

fOut.flush();// 在close时,会自动调用此方法

fOut.close();

(3)读同理

3、读写

读写一般使用fstream类,所有原理同上。

注:使用fstream类创建文件读写对象后,如果先是调用了read函数,则当read读到文件尾部后,再调用write函数,会导致文件数据写入失败。此时,需要调用fstream.clear函数,即可解决写入失败的bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值