C++ 读写文件的简单封装
来源:互联网 发布:wind数据付费版多少钱 编辑:程序博客网 时间:2024/05/16 11:45
原创文章,不得转载!
说道文件读写,有很多方法,MFC封装的有,C++的流文件读写,但是这里说的其实是C语音对文件的读写封装,fopen,fwrite,fread,fclose;
这几个函数很简单,同时也很强大,速度很快;一般建议用这类方法读写文件;
1:一般,如果想直接写文件,例子:
FILE * f = fopen(pstr,"w+b");
fwrite( Buf, 1, nLen, f );
fclose(f);
这个方式是将一定内容写到文件中,但是如果文件存在会删除文件重新写pBuf到新得文件;
2:如果想追加写文件,一般的方法是:
FILE * f = fopen(pstr,"a+b");
fwrite( Buf, 1, nLen, f );
fclose(f);
这样,如果文件存在,会将Buf写到文件的后面,不会销毁文件;
3:在一般程序调试的时候,我们在写文件,希望在程序的运行过程中文件一直追加写,当程序再次运行的时候重新写新的文件追加写;
例如,写一个录音程序,启动程序,追加方法写录音;关闭程序;再次打开程序删除上次写的音频文件重新写追加文件录音;
一般的的解决方法是:
用方法2,追加写文件,程序运行关闭后,再次启动程序前,删除上次的文件,否则这次的内容会继续添加到上次的文件后面;
推荐解决方法:
fopen 的 “w+b”,方法, 当不关闭文件指针(fclose(f);)一直用fwrite,可以将文件一直写到文件后面,当重新fopen,a+b的时候文件重新建立;
所以可以将 文件指针“f”设置问全局变量,或者成员变量,但是这样就有些麻烦而且;
所以程序可以写成;
{
static FILE * f = fopen(pstr,"w+b");
fwrite( Buf, 1, nLen, f );
}
这样,在程序重新启动之前 文件指针一直保存,所以可以一直追加写文件,当程序重新启动执行到这里的时候,又会删除上次文件重新写追加文件;
这样写,还是有点麻烦,因为每次都要写相同的代码,但是,目的就是将一定长处的内容写到文件中,所以在简化上述代码:
#define DebugWriteFile( pstr, Buf, nLen ) { static FILE * f = fopen(pstr,"w+b"); fwrite( Buf, 1, nLen, f ); }
void CDlg::OnBnClickedButton()
{
char ch1[10] = "12345 ";
DebugWriteFile("DebugWriteFile1.dat", ch1, 10 );
char ch2[10] = "67890 ";
DebugWriteFile("DebugWriteFile2.dat", ch2, 10 );
}
- Qt读写文件的简单封装
- C++ 读写文件的简单封装
- C#: 最简单的文件读写
- C的简单文件读写示范
- 简单的文件读写
- 简单的读写文件
- 简单的读写文件
- 文件的简单读写
- 简单的文件读写
- 文件的简单读写
- 简单的文件读写
- C#读写EXCEL的简单封装
- C#读写EXCEL操作的简单封装
- C文件的读写
- C文件的读写
- 用c读写dbf文件的简单实现
- C#:读写简单的文本文件
- 文件读写封装
- 代驾傍上高科技,车友助理锁定附近“潜伏者”
- nginx图片缓存服务器配置实战
- 聚合服务的利用,统一成一种新的服务方式
- poj 3169 Layout
- LeetCode | Single Number
- C++ 读写文件的简单封装
- Bash Shell 里的各种括号
- oracle中如何判断本表有多少张表对其有外键关联
- 新的F2E
- 程序员保护好自己的颈椎
- mdb数据库文件如何导入Microsoft SQL Server 2008中
- 从投资小白到理财高手 只差三步
- VS2012好用的插件或好用的技巧
- BitMap的处理