关于文件操作的函数,在此就不详细赘述了,可以参照:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html。这篇文章中对于文件的操作讲的很详细。
我要解决的问题是,将数据结构的内容以二进制形式写入文件,以及验证是否写入成功。代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
static int index = 0;
typedef struct _STUDENT{
char name[20];
int age;
}STUDENT,*PSTUDENT;
int main()
{
FILE *fp =fopen("e:/studentsdata.txt","wb+");
STUDENT s[10];
PSTUDENT ptrs = s;
for (int i = 0; i < 10; i++)
{
strcpy(s[i].name, "zhang");
s[i].age = i;
fwrite(s+i, sizeof(STUDENT), 1, fp);
fflush(fp);
index++;
printf("%d\n", index);
}
STUDENT s1[10];
PSTUDENT s2 = new STUDENT[10];
rewind(fp);
fread(s1, sizeof(STUDENT), 10, fp);
fclose(fp);
memcpy(s2,s1,sizeof(STUDENT)*10);
for (int i = 0; i < 10; i++)
{
printf("%s: %d\n",s2[i].name,s2[i].age);
}
delete[] s2;
getchar();
return 0;
}
运行结果如下:
结果表明:数据成功写入文件中,并可以准确读出