懒大王ツ 2022-06-22 12:37 采纳率: 71.4%
浏览 89
已结题

有关c语言 double类型数据录入文件的问题

先谢谢大家了🙏
下面是这个部分的代码
void zhuce(){
FILE *nchuhu=fopen("chuhu.txt","r");//只读文件,查看是否已存在
FILE *fchuhu=fopen("chuhu.txt","a");//以附加的方式打开只写文件,若文件不存在则建立该文件
int i;
if((nchuhu=fopen("chuhu.txt","r"))==NULL) printf("文件不存在,将由系统创建\n");//判断文件是否存在
do{
system("cls");//清除fopen函数判断输出值
date();//显示当前日期
printf("\n\n\t\t请输入新储户的信息:");
fscanf(nchuhu,"%s\t %s\t%s\t %lf\t%s\n",&hu[A].name,&hu[A].idnumber,&hu[A].password,
&hu[A].cunkuan,&hu[A].idnum);
printf("\n\t姓名:"); //姓名
fflush(stdin);//刷新一下缓存区,将缓冲区内的数据清空并丢弃,避免键盘缓存区中未读出的字符影响程序.
gets(hu[A].name);

    //判断身份证格式是否正确
    do{
        printf("请输入身份证号码(18位):");
        fflush(stdin);
        gets(hu[A].idnumber);
        if(strlen(hu[A].idnumber)!=18)//strlen函数计算字符串长度,判断身份证位数是否正确
            printf("\n\t输入错误!\n\t身份证号必须为18位数字或最后一位为字母\n");


    }while((strlen(hu[A].idnumber)!=18) );

  fflush(stdin);
    printf("\n\t\t储户密码(6位):");
    for(i=0;i<6;i++){
        fflush(stdin);
        hu[A].password[i]=getch();;

  }

    printf("输入要存储的金额:");              //存款
    fflush(stdin);
  scanf("%lf",&hu[A].cunkuan);

    printf("正在开户中……\n");                      //生成账号
    printf("系统生成账号为(请牢牢记住你的账号):");
    self(A+1);//根据开户人数A生成特定账号
    printf("%s\n\t",hu[A].idnum);
    fprintf(fchuhu,"%s\t %s\t%s\t %lf\t%s\n",&hu[A].name,&hu[A].idnumber,&hu[A].password,&hu[A].cunkuan,&hu[A].idnum);     //用fprintf函数将数据打印到chuhu.txt文件里
  A++;
  printf("继续开户请按y      返回主界面请按n");
  fflush(stdin);
  scanf("%c",&ch);

}
while(ch=='y'||ch=='Y');
printf("存入成功!\n");
system("cls");
fclose(nchuhu);//将上面打开的文件关闭
fclose(fchuhu);
}

然后就是这个存款接收不进去

img

img

一直显示0.000000
我接收double型的方法也没问题啊!不知道哪里出了问题
下面这个是结构体定义

img

1.

  • 写回答

2条回答 默认 最新

  • wwc2017 2022-06-22 14:21
    关注

    fprintf(fchuhu,"%s\t %s\t%s\t %lf\t%s\n",&hu[A].name,&hu[A].idnumber,&hu[A].password,&hu[A].cunkuan,&hu[A].idnum); //用fprintf函数将数据打印到chuhu.txt文件里

    这一句中,hu[A].cunkuan不应该取地址(其实那些char数组也不需要写&)

    另外吐槽一下,你发的代码格式好混乱,我调整了半天

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月22日
  • 已采纳回答 6月22日
  • 修改了问题 6月22日
  • 修改了问题 6月22日
  • 展开全部

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作