- 注册时间
- 2004-10-13
- 最后登录
- 2019-5-15
⑧专业
*永恒国度*
- 积分
- 14145

|

楼主 |
发表于 2008-1-26 14:22:17
|
显示全部楼层
- #include<stdio.h>
- #include<stdlib.h>
- void main()
- {
- struct
- {
- char name[20];
- char sex;
- int num;
- int age;
- float money;
- }employee;
- FILE *fp;
- char ch;
-
- if((fp=fopen("employeerecord.txt","wb"))==NULL)
- {
- printf("can't open file.\\n");
- exit(0);
- }
- do
- {
- printf("enter name:");gets(employee.name);
- printf("enter sex:");scanf("%c",&employee.sex);
- printf("enter num:");scanf("%d",&employee.num);
- printf("enter age:");scanf("%d",&employee.age);
- printf("enter money:");scanf("%f",&employee.money);
- fwrite(&employee,sizeof(employee),1,fp);//將上面內容寫入文件中
- printf("continue(y/n)?");
- fflush(stdin);
- ch=getchar();
- fflush(stdin);
- }while(ch=='y');
- fclose(fp);
- }
复制代码 就是這樣, 原來是自己的問題 少寫了個fflush(stdin)
不過在TC上確實是有我說那個問題的,人家解釋說
“scanf的浮点格式转换程序没有连接。因为TC开发时DOS下的存储资源紧缺,因此TC在编译时尽量不加入无关部分。在没发现需要做浮点转换时,就不将这个部分安装到可执行程序里。但有时TC不能正确识别实际确实需要浮点转换,因此就会出现上面错误。” |
|