/************************************************************************************
******函数功能:
******fseek(文件类型指针,位移量,起始点)
******文件开头 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2
******fseek(fp,100L,0(1,2) )
******rewind
*************************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#define SIZE 4
struct student_type
{
char name[20];
int num;
int age;
char address[20];
}stu[SIZE],stu2[SIZE];
void save()
{
int i = 0;
FILE *fp = fopen("stu_info","wb+");
if (NULL == fp)
{
perror("stu_info");
exit(EXIT_FAILURE);
}
for (i = 0 ; i < SIZE; i++)
{
if ( fwrite(&stu[i],sizeof(struct student_type),1,fp) != 1 )
{
printf("写入出错");
exit(EXIT_FAILURE);
fclose(fp);
}
}
//fclose(fp);
}
void load()
{
int i = 0;
FILE *fp = fopen("stu_info","rb+");
if (NULL == fp)
{
perror("stu_info");
exit(EXIT_FAILURE);
}
// fseek(fp,sizeof(struct student_type),0);
for (i = 0 ; i < SIZE; i++)
{
fread(&stu2[i],sizeof(struct student_type),1,fp);
}
}
void main()
{
int i = 0;
/// for (i = 0 ; i < SIZE; i++)
// {
// scanf("%s %d %d %s",stu[i].name,&stu[i].num,&stu[i].age,stu[i].address);
// }
// save();
load();
for (i = 0 ; i < SIZE; i++)
{
printf("%s %d %d %s\n",stu2[i].name,stu2[i].num,stu2[i].age,stu2[i].address);
}
}