先谢谢大家了🙏
下面是这个部分的代码
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);
}
然后就是这个存款接收不进去
一直显示0.000000
我接收double型的方法也没问题啊!不知道哪里出了问题
下面这个是结构体定义
1.