题目13-3
#include
int main()
{
FILE *fp;
int i, a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","wb+"); //以读写方式打开一个二进制文件d3.data
fwrite(a,sizeof(int),6,fp); //将a中大小为4*6大小的数据块写入fp指向的文件
fseek(fp,sizeof(int)*3,SEEK_SET); //以距文件开头4*3个位置为新的读写位置
fread(a,sizeof(int),3,fp); //从fp所指向的文件中读入3个数据块,每个数据块有4个字节,把读出的数据存放在a中
fclose(fp);
for(i=0;i<6;i++)
printf("%2d",a[i]);//以%2d的格式依次输出a[i]中的每个元素
return 0;
}
知识点:
一、二进制文件的读写
1、读操作:函数原型为 int fread(void *buff,int size,int count,FILE *fp);
其中,buff为指向读入数据块的存放空间指针,size为读入数据块的长度,count为读入数据块的个数,fp为指向被读入文件的指针。即从fp指向的文件中读入size*count大小的数据块,把读出的数据块存放在由buff指向的空间中。
2、写操作:函数原型为 int write(void *buff,int size, int count , FILE *fp);
其中,buff为指向写入数据块的存放空间指针,size为输入数据块的长度,count为输入数据块的个数,fp为指向被写入文件的指针。即将buff指向的文件中size*count大小的数据块,写入由fp指向的空间中。
3、代码段
#include
int main()
{
FILE *fp;
int i, a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","wb+");//以读写方式打开一个二进制文件d3.data
fwrite(a,sizeof(int),6,fp);//将a中大小为4*6大小的数据块写入fp指向的文件
fseek(fp,sizeof(int)*3,SEEK_SET);//以距文件开头4*3个位置为新的读写位置
fread(a,sizeof(int),3,fp);//从fp所指向的文件中读入3个数据块,每个数据块有4个字节,把读出的数据存放在a中
fclose(fp);
for(i=0;i<6;i++)
printf("%2d",a[i]);//以%2d的格式依次输出a[i]中的每个元素
return 0;
}
程序运行结果为:4 5 6 4 5 6