C/C++:文本文件和二进制文件的读写

2025-05-23 10:56:33

1、C++基础:数据流,缓冲区,文件类型①数据流Stream:程序与数据间的交互是以流的形式进行的。在C语言文件存取时,都会先进行“打开文件”操作,目的是打开数据流;而“关闭文件”操作就是关闭数据流。②缓冲区Buffer:程序执行时,提供的额外内存以暂时存放数据。缓冲区作用:为了提高存取效率,因为内存的存取速度比磁盘快。③文件类型:分为文本文件和二进制文件两种。文本文件:字符编码的方式进行保存;二进制文件:内存中的数据原封不动至文件中,适用于非字符为主的数据;如果以记事本打开,只会看到一堆乱码。二进制文件优点:存取速度快,占用空间小,随时存取数据。

C/C++:文本文件和二进制文件的读写

3、文件读写流程:文件数据读取时,先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后再从缓冲区中读取所需数据;当数据写入文件时,先将数据写入缓冲区,只有在缓冲区已满或“关闭文件”后,才会将数据写入磁盘;

C/C++:文本文件和二进制文件的读写

4、文本文竭惮蚕斗件操作:C中主要通过标准I/O函数来对文本文件进行处理。文本文件操作包括:fopen(),fclos髫潋啜缅e(),fputc(),fgets(),fputs(),fprintf(),fscanf()…打开文件函数fopen():函数原型:_CRTIMP FILE* __cdecl fopen(const char*,const char*);函数参数:第一个参数为文件名,第二个参数为打开模式。返回值:打开成功,fopen返回一个结构指针地址;否则返回NULL。示例:FILE *fp;fp=fopen(“c:\\temp\\test.txt”,”r”);//由于反斜杠\在C语言中是控制字符,所以为了区分再加一个反斜杠以表示路径。【注】:使用fopen()函数打开的文件会先将文件复制到缓冲区;在读取和写入操作中,都是针对缓冲区进行存取而不是磁盘,只有当fclose()函数关闭文件时,缓冲区中的数据才会写入磁盘。

C/C++:文本文件和二进制文件的读写

6、4.2字符存取函数fputc()/fgetc()函数原型:_CRTIMP int __cdecl fputc(int, FILE *); _CRTIMP int __cdecl fgetc(FILE *);fgetc()函数:字符读取函数,从文件数据流中一次读取一个字符,然后读取光标移动到下一个字符,并逐步将文件的内容读出。如果字符读取成功,则返回所读取的字符,否则返回EOF(end of file)。EOF是表示数据结尾的常量,真值是-1。判断文件是否读取完毕,可利用feof()函数进行检查。未读取结束返回0,已读取结束返回非零值。feof()函数原型:_CRTIMP int __cdecl feof(FILE *);fputc()函数:将字符逐一写入文件中

C/C++:文本文件和二进制文件的读写C/C++:文本文件和二进制文件的读写C/C++:文本文件和二进制文件的读写

7、4.3字符串存取函数fputs()/fgets()函数原型: _CRTIMP int __cdecl fputs(const char*,FILE *); _CRTIMP char* __cdecl fgets(char *,int, FILE *);fgets()函数:从指定文件读入一个字符串,如fgets(str,n,fp);函数参数:n为要求得到的字符串个数,但只从fp指向的文件输入n-1个字符,然后最后加一个‘\0’字符,因此共得到n个字符的字符串,把他们放在字符数组str中。如果在读完n-1个字符之前,遇到换行符或EOF,读取结束。fgets()函数:向指定文件输出一个字符串,如fputs(“Hey”,fp);把字符串Hey输出到fp指定文件。函数参数:第一个参数可以是字符串常量、字符数组或字符型指针。返回值:输出成功,返回0;否则返回EOF;

C/C++:文本文件和二进制文件的读写C/C++:文本文件和二进制文件的读写C/C++:文本文件和二进制文件的读写
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢