用c自写的机房收费系统出了点问题

第一个功能建立新档案后我去打开文件结果发现数据不对,这是为什么呢?第二个功能一直都是查无此人,又是怎么回事?求解,谢谢!源码如下:

文件打开方式不对。
w 方式打开,如果文件不存在,会创建新文件,**如果文件已经存在,会清除文件内容**,当做新文件处理。


 if((fp=fopen("duli16.3.dat", "w")) == NULL)  

修改为:

 if((fp=fopen("duli16.3.dat", "a+")) == NULL)  

文件各种打开参数的详细说明可以参考一下教材或者上网搜索一下。

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

![图片说明](https://img-ask.csdn.net/upload/201706/12/1497262218_351119.png)<br>
图片说明

图片说明

把balance定义为char,不要int,就是这样char balance[10];
然后下面改成这样:fprintf(fp,"%10s%15s%10s",………);应该没问题了

图片说明

char id[14];
char name[10];
char balance[15];
这样试试

stu[i].balance-"0"这样就实现了char转换为int了啊!

目前还有的问题是一输入5就没反应,即进不了注销功能,还有续钱这功能printf续钱前的金额和续钱后的金额程序就停止工作,求解,麻烦了

问题已自行解决,谢谢