您的位置:首页 > 其它

fread和fwrite使用的题..

2013-08-16 19:33 211 查看
又到了做题的时候,搞了好久搞了出来。出了个bug,在保存函数忘记了关闭文件,导致读取函数时一直打开失败- -!

我不会怎么沟通讲题,所以我慢慢来,努力来让自己沟通能力提升!

贴代码!

#include <stdio.h>
#include <stdlib.h>

#define LEN 4						//在这里定义数组长度方便以后的修改,要养成这个好习惯;

struct stutype
{
char name[10], address[30];	//姓名 地址 学号 年龄;
int num, age;
}stu[LEN], stud[LEN];				//一个用于写,一个用于读;

void save();
void load();

void main (){

int i;
printf("请输入学生的 姓名、学号、年龄 和 地址:\n\n");

//写入学生信息;
for(i=0; i<LEN; i++){

printf("请输入第 %d 个学生的信息:\n", i+1);
scanf_s("%s %d %d %s",
stu[i].name, 10, &stu[i].num, &stu[i].age, stu[i].address, 30);

}
save();		//保存;
load();		//读取;
}

void save(){

int i;
FILE *fp;
fopen_s(&fp, "stulist", "wb");
if (!fp){

printf("打开文件错误1!\n\n");
return;
}

for (i=0; i<LEN; i++){

if (fwrite (&stu[i], sizeof(struct stutype), 1, fp) !=1){

printf("写入文件错误!\n");
fclose(fp);
}
}

fclose(fp);		//很重要的一件事,打开完一个文件一定要记得关闭。

}

void load(){

int i;
FILE *fp;

fopen_s(&fp, "stulist", "rb");
if (!fp){

printf("打开文件错误2!\n");
return;
}

for (i=0; i<LEN; i++){

fread(&stud[i], sizeof(struct stutype), 1, fp);
printf("第 %d 个学生的信息:\n\n", i+1);
printf("姓名:%s\n学号:%d\n年龄:%d\n地址:%s\n\n",
stud[i].name, stud[i].num, stud[i].age, stud[i].address);
}

fclose(fp);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: