用fwrite输出数据后,想要用fread读取就不能! 第二个代码哪里出错了?如下代码
本帖最后由 krakra 于 2015-8-8 23:46 编辑//第一个代码
#include<stdio.h>
#define SIZE 2
typedef struct //typedef
{
char name;
int num;
int age;
char addr;
}student;
student stu;
void save()
{
FILE *fp;
int i;
if((fp = fopen("dat.txt","wb")) == NULL)
{
printf("无法打开此文件!\n");
return;
}
for(i = 0; i < SIZE; i++)
if(fwrite(&stu, sizeof(student), 1, fp) != 1)
{
printf("文件写入错误。!\n");
}
fclose(fp);
}
void main()
{
int i;
for(i = 0; i < SIZE; i++)
scanf("%s,%d,%d,%s",&stu.name,&stu.num,&stu.age,&stu.addr);
save();
}
//第二个代码
#include<stdio.h>
#include<stdlib.h>
#define SIZE 2
typedef struct
{
char name;
int num;
int age;
char addr;
}student;
student stu;
int i;
void load()
{
FILE *fp;
if(!(fp = fopen("dat.txt", "rb")))//打开文件
{
printf("Cannot open the file!");
return;
}
for(i = 0; i < SIZE; i++)
{
fread(&stu, sizeof(student),1 , fp);//读取数据块!
}
fclose(fp);
}
void main()
{
for(i = 0; i < SIZE; i++)
{
load();
printf("%s%d%d%s", stu.name, stu.num, stu.age, stu.addr );
}
} 本帖最后由 krakra 于 2015-8-8 23:44 编辑
1
页:
[1]