例:结构体数据,利用数据块写入和读取。
// 结构体数据,写数据块
#include<stdio.h>
#include<string.h>
typedef struct
{
long stuNo;
char Name[30];
}student;
void main()
{
FILE * fp; //定义文件指针
student stu[2]={152202010,"xiaoxi",152202014,"xiaojun"};
fp=fopen("D://test//file_operate//fwrite2.txt","wb+"); //以写的方式打开文件
if(fp==NULL)
{ // 如果打开不成功,输出错误信息后退出程序
printf("File open Error!");
return; //
}
else
{
printf("Please input the chars\n");
for(int i=0;i<2;i++)
{
fwrite(&stu[i],sizeof(student),1,fp);
//putc('\n',fp);
}
fclose(fp);
}
}
结果生成二进制文件fwrite2.txt
// 结构体数据,读数据块
#include<stdio.h>
typedef struct
{
long stuNo;
char Name[30];
}student;
void main()
{
FILE * fp; //定义文件指针
student stu1;
int iCount=1,n=1;
fp=fopen("D://test//file_operate//fwrite2.txt","rb"); //以写的方式打开文件
if(fp==NULL)
{ // 如果打开不成功,输出错误信息后退出程序
printf("File open Error!");
return; //
}
else
{
printf("The Files are as follow:\n");
n = fread(&stu1,sizeof(student),1,fp);
while(n)
{
printf("Her name is %s\n",stu1.Name);
printf("Her number is %ld\n",stu1.stuNo);
iCount=iCount+1;
n = fread(&stu1,sizeof(student),1,fp);
}
printf("\n");
fclose(fp);
}
}