请教C++/C中一个 结构体 文件读写 的问题

以下要进行操作的结构体#defineSIZE50structemployee{charxm[50],xh[13],xb,zy[11],zw[12];intnl;struc... 以下要进行操作的结构体
#define SIZE 50
struct employee
{
char xm[50],xh[13],xb,zy[11],zw[12];
int nl;
struct employee *next;
}employ[SIZE];

以下是文件读写的代码
void load()
{
FILE* fout;
int i;
if((fout=fopen("emp_list","r"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
{

fscanf(fout,"%d",&employ[i]);
}
fclose(fout);
}

void save()
{
FILE *fp;
int i;
if((fp=fopen("emp_list","wb"))==NULL)
{ printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&employ[i],sizeof(struct employee),1,fp)!=1)
printf("file write error\n");
fclose (fp);
}

没法正常工作 。求教这个结构体文件读写的正确方法及代码,谢谢!
展开
 我来答
xoaxa
2015-01-10 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3503万
展开全部
#include <stdio.h>
#define SIZE 50

struct employee {
char xm[50],xh[13],xb,zy[11],zw[12];
int nl;
// struct employee *next; // 作为链表结点时需要这个指针
}employ[SIZE];

void load() {
FILE *fout;
int i;
if((fout = fopen("emp_list","r")) == NULL) {
printf("cannot open file\n");
return;
}
for(i = 0;i < SIZE;i++) {
fread(&employ[i],sizeof(struct employee),1,fout)
// 更新nl
}
fclose(fout);
}

void save() {
FILE *fp;
int i;
if((fp = fopen("emp_list","wb")) == NULL) {
printf("cannot open file\n");
return;
}
for(i = 0;i < SIZE;i++) {
if(fwrite(&employ[i],sizeof(struct employee),1,fp) != 1) {
printf("file write error\n");
break;
}
}
fclose(fp);    
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
雨诺与诺
2015-01-10 · TA获得超过1213个赞
知道小有建树答主
回答量:2179
采纳率:33%
帮助的人:691万
展开全部
连main函数都没有,怎么工作。fscanf(fout,"%d",&employ[i]);也是错误的,这么写肯定是错的,只能具体到里面的一个东西赋值,比如可以写fscanf(fout,"%d %s",&employ[i].xl,employ[i].xm);具体怎么写要看你文件里的内容什么样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式