按一道例题来理解,欢迎交流~
#include "stdio.h" int main(){ FILE *fp; int i,a[6]={1,2,3,4,5,6},k; fp=fopen("data.dat","w+b"); fwrite(&a[0],sizeof(int),1,fp); for(i=1;i<6;i++){ fseek(fp,0L,0); fwrite(&a[i],sizeof(int),1,fp); } fseek(fp,0L,0); fread(&k,sizeof(int),1,fp); fclose(fp); printf("%d\n",k); }
1、首先使用fopen函数以写的的方式打开文件data.dat,返回文件指针fp;
2、然后通过调用fwrite函数,将起始地址为&a[0],单位长度为sizeof(int)的一个元素写入文件,即写入a[0];
3、接着for循环从数组a的第二个元素起,每次首先使用fseek()函数将起始指针fp定位到文件data.dat的起始位置,
写入起始地址&a[i],单位长度为sizeof(int)的一个元素,即写入a[i]。
4、循环结束后,使用fseek()函数将指针fp定位到文件开始位置,
5、调用fread()函数,从fp所指定的位置读取单位长度为sizeof(int)的一个元素到变量k中,即k=6,
最后调用fclose()函数关闭文件,输出k的值为6;