c++如何读取文件数据计算,请高手为我看看我哪出错了

前面定义了一个结构体worker,里面为职员信息,还定义了一个类pay,里面是函数;voidpay::js(){workers;for(inti=1;i<=length;... 前面定义了一个结构体worker,里面为职员信息,还定义了一个类pay,里面是函数;
void pay::js()
{
worker s;
for(int i=1;i<=length;i++)
{
fstream file("worker.dat",ios::in|ios::out);
if(!file){cout<<"error"<<endl;exit(0);}
while(!file.eof())
{
file.read((char *)&s,sizeof(s));
if(file.fail()) break;
if(s.no==i)
{
s.yfgz =(s.jbgz+s.zwgz+s.bzjt+s.jj+s.qtbz);//数据计算
s.sfgz =(s.yfgz-s.df-s.sf-s.qf) ;//数据计算
writer(s);//将数据重新写入文件
}
continue;

}
}
}
我在前面将两个需要计算的成员赋值为0了,可计算后得到的结果还是0,望指点
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
杜茂彦rc
2011-06-14 · TA获得超过1143个赞
知道小有建树答主
回答量:1314
采纳率:100%
帮助的人:1229万
展开全部
给出 worker定义
应该是 里面有 string这种定义 。
追问
struct worker
{
int no;
char name[10];
float jbgz;
float zwgz;
float bzjt;
float jj;
float qtbz;
float df;
float sf;
float qf;
float sfgz;
float yfgz;
int ffyf;

};
我没有用string额,后来我改成用两个文件流,在重新定义一个worker a[1000]数组来储存数据,再重新计算录入就将问题解决了,
但是我还是想知道我之前的这种方法有什么问题~~~
追答
那你写是怎么写的?配套么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式