C语言fwrite()函数:以数据块形式写入文件
C语言 fwrite() 函数用来将内存中的数据以“二进制数据块”的形式写入到二进制文件中。
这个函数的参数较多,要注意理解每个参数的含义。
功能:从以 buf 为首地址的内存中取出 count 个数据块(每个数据块为 size 个字节),写入“文件指针”指定的文件中。调用成功,该函数返回实际写入的数据块的个数;出错时返回0值。
利用 for 循环语句把初始化过的结构体数组 stud 中的数据写入文件 "www.weixueyuan.net.bin" 中,写数据结束后文件指针指向文件的结尾处。
由于后面还要从文件中读取数据,所以需要重置文件指针于文件开头处,这里使用了 rewind() 函数重置文件指针读写位置,最后利用 while 循环语句把文件 "www.weixueyuan.net.bin" 中的数据写入结构体数组 stud1 中,并在屏幕上输出。
二进制数据文件不能用一般的软件打开查看其中的内容,只能通过程序读出内容进行查看。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
二进制文件以“二进制数据块”为单位进行数据的读写操作。所谓“二进制数据块”就是指在内存中连续存放的具有若干字节长度的二进制数据,如整型数据、实型数据或结构体类型数据等,数据块输入/输出函数对于存取结构体类型的数据尤为方便。
fwrite() 函数位于 <stdio.h> 头文件中,它的一般使用格式如下:fwrite(buf,size,count,文件指针);
格式说明:- buf 是输出数据在内存中存放的起始地址,也就是数据块指针;
- size 是每个数据块的字节数;count用来指定每次写入的数据块的个数;
- 文件指针是指向一个已经打开等待写入的文件。
这个函数的参数较多,要注意理解每个参数的含义。
功能:从以 buf 为首地址的内存中取出 count 个数据块(每个数据块为 size 个字节),写入“文件指针”指定的文件中。调用成功,该函数返回实际写入的数据块的个数;出错时返回0值。
示例
使用 fwrite() 函数和 fread() 函数对 www.weixueyuan.net.bin 文件进行写入和读取操作。代码如下:#include "stdio.h" #include "stdlib.h" int main() { FILE *fp; struct student /*定义结构体数组并初始化*/ { char num[8]; int score; }stud[]={{"2019101",86},{"2019102",60},{"2019103",94},{"2019104",76},{"2019105",50}},stud1[5]; int i; if((fp=fopen("www.weixueyuan.net.bin","wb+"))==0) /*以读写方式新建并打开文件www.weixueyuan.net.bin,测试是否成功*/ { printf("不能打开文件\n"); exit(0); } for(i=0;i<5;i++) fwrite(&stud[i],sizeof(struct student),1,fp); /*向fp指向的文件中写入数据*/ rewind(fp); /*重置文件位置指针于文件开始处,以便读取文件*/ printf("学号 成绩\n"); /*在屏幕上输出提示信息*/ i=0; while(!feof(fp)) /*循环读取文件中的数据,直到检测到文件结束标志*/ { fread(&stud1[i],sizeof(struct student),1,fp); /*读取fp指向的文件中的数据并写入结构体数组stud1中*/ printf("%s %d\n",stud1[i].num,stud1[i].score); } /*向屏幕上输出结构体数组stud1中的数据*/ fclose(fp); /*关闭文件*/ }运行结果:
学号 成绩
2019101 86
2019102 60
2019103 94
2019104 76
2019105 50
2019105 50
利用 for 循环语句把初始化过的结构体数组 stud 中的数据写入文件 "www.weixueyuan.net.bin" 中,写数据结束后文件指针指向文件的结尾处。
由于后面还要从文件中读取数据,所以需要重置文件指针于文件开头处,这里使用了 rewind() 函数重置文件指针读写位置,最后利用 while 循环语句把文件 "www.weixueyuan.net.bin" 中的数据写入结构体数组 stud1 中,并在屏幕上输出。
二进制数据文件不能用一般的软件打开查看其中的内容,只能通过程序读出内容进行查看。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。