首页 > 编程知识 正文

c语言文件读写实例,用c语言打开一个文件

时间:2023-05-04 18:28:20 阅读:169853 作者:3074

这两天看了文件读写的专题,索性把有关内容整理了一下。

C语言文件的读写只是一些读写函数的应用。 fopen (、fread )、fwrite )等)等,进行简单介绍。

一、fopen () )

函数原型: file*fopen(constchar*path,const char *mode );

参数说明: path,打开的文件名。 包含文件路径,默认值为当前项目目录。 模式:流程形态,详细情况将在后面叙述。

返回值:文件指针。 打开失败,返回空值; 打开了。 返回指向流的文件指针。

模式详细信息:模式是指打开文件的方式,是读写吗? 二进制? 要添加到文件末尾吗? 等等。

r:只读,文件必须存在

r :读写方式,需要存在文件

rb :读写二进制(binary )文件,但似乎是只读的。 可以自己测试。

rw :文本文件读写

w:只写文件。 如果文件存在,则复盖原始内容; 如果不存在,则创建新文件

w :读写。 如果文件存在,(写入时)将覆盖原始内容; 如果不存在,则创建新文件

a: append,只写文件。 如果文件存在,则追加写入的内容到文件的末尾; 如果不存在,则创建新文件

a : append,读写文件。 如果文件存在,则追加写入的内容到文件的末尾; 如果不存在,则创建新文件

wb:只需要写。 二进制文件。 如果不存在,则创建新文件

wb :读写。 二级文件。 如果不存在,请创建新文件。

值得注意的是,某些编译器支持rw等参数,如linux文件属性(rwx-421 )。

二、fopen (,fwrite ) )。

1 )函数原型(size_tfread ) void*ptr、size_t size、size_t count、FILE *stream );

参数说明: ptr :数据缓冲器的位置; size )每个数据类型的大小(count )数据的数量; 流:指向要读取的文件的文件指针

2 )函数原型(size_tfwrite ) constvoid*ptr、size_t size、size_t count、FILE *stream );

参数描述: ptr、数据缓冲区的位置; 每个数据类型的大小: count :数据个数; 流:指向要写入的文件的文件指针

注意:这两个函数也与fopen ()函数配合使用,读写文件的方式取决于fopen函数的mode参数。

三.文件读写实例

在这里,我将很多结构数据写入我的文件“myfile.dat”,从中读取并回显到console。

1 #包含

2 #包含

3 #define N 5

4类型结构

5 {6 intnum 7 char name[10]; 8 char tel[10]; 9 )9) 9 } STYPE; 10 voidcheck (; 11

12intfun(stype*STD ) 13 ) 14文件* FP=null; //定义时,fp是否指向空比较好?

15 inti; 16if () FP=fopen('myfile.dat ',' wb ' ) )==NULL ) return 0; 17

18打印((noutputdatatofile! n '; 19for(I=0; i N; I ) 20fwrite(STD[I],sizeof ) stype )、1、fp ); 21fclose(FP; 22 fp=NULL; 23返回1; 24 ) 25

6intmain(27 ) 28stypes(10 )={1,' aaaaa ',' 111111'},29 ) 1,' bbbbb ',' 222222'},30 ) 1,' ccccc' 33 intk ' 34k=fun(s; 35if(k==1) 36 ) 37打印) succeed! ' ); 38 check (; 39 ) 40秒

41printf('Fail!' ); 42 ) 43

44voidcheck(45 ) 46文件* FP=null; //定义时,fp是否指向空比较好?

47 inti; 48 STYPE s[10]; 49if () FP=fopen(myfile.dat,(rb ) ) ) )==NULL ) 51printf ) fail! n '; 52exit(0; 53 ) 54打印((nreadfileandoutputtoscreen 3360 (n ) ); 55打印((nnumnametel ) n ); 56for(I=0; i N; I ) 57{58}fread(s[I],sizeof(stype ),1,fp ); 59printf(%d%s%s(n ),s[i].num,s[i].name,s[i].tel ); 60 ) 61fclose(FP ); 62 fp=NULL; 为了避开dangling pointer?

63 }

view代码

程序运行结果的说明:

1 )观察项目目录下多了一个myfile.dat文件

2 )回显至控制台

注意事项:

1 ) fclose(FP ) .文件操作完成后,需要关闭文件流,可能导致文件占用内存泄漏; 或者下次访问文件时,会出现意外问题

2 )关闭fp=NULL .文件后,需要将文件指针指向NULL。 防止钉钉点。

3 )最初定义文件指针时,是否需要指向NULL? 从初始化的角度来看,指向NULL也许可以避免安全问题。

原文: 3358 www.cn blogs.com/let go/p/5728514.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。