找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2905|回复: 4

[通用编程] 結構輸入float型的問題

[复制链接]
发表于 2008-1-26 11:43:54 | 显示全部楼层 |阅读模式
  這問題好像以前用TC的時候問過,不過找不到貼子了,當時把那程序返回到VC6上問題就沒了,但今天這問題也在VC6上出現了所以想再問問。
struct
{
      int   num;
      char   name[20];
      float   score ;
}student;
比如這樣的個結構。為什麼不能直接這樣   scanf("%f",&student.score);給score賦值呢?

記得以前說要先定義一個float類型的變量 先接受了值,再把該值賦給 student.score
像這樣
float  x;
scanf("%f",&x);
student.score=x;

為什麼要這樣做呢?
发表于 2008-1-26 12:30:44 | 显示全部楼层
在VC6上测试了,似乎没有出什么问题,请问楼主能否把自己遇到的问题说具体一点呢,谢谢~
 楼主| 发表于 2008-1-26 13:11:13 | 显示全部楼层
就是編譯通過,運行時出錯,但將employee.score先初始化就沒問題
发表于 2008-1-26 13:36:17 | 显示全部楼层
额,麻烦楼主把完整的代码提供一下吧,谢谢~

可能问题在其他地方呢~
 楼主| 发表于 2008-1-26 14:22:17 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void main()
  4. {
  5.     struct
  6.     {
  7.         char name[20];
  8.         char sex;
  9.         int num;
  10.         int age;
  11.         float money;
  12.     }employee;
  13.     FILE *fp;
  14.     char ch;
  15.    
  16.     if((fp=fopen("employeerecord.txt","wb"))==NULL)
  17.     {
  18.         printf("can't open file.\\n");
  19.         exit(0);
  20.     }
  21.     do
  22.     {
  23.         printf("enter name:");gets(employee.name);
  24.         printf("enter sex:");scanf("%c",&employee.sex);
  25.         printf("enter num:");scanf("%d",&employee.num);
  26.         printf("enter age:");scanf("%d",&employee.age);
  27.         printf("enter money:");scanf("%f",&employee.money);
  28.         fwrite(&employee,sizeof(employee),1,fp);//將上面內容寫入文件中
  29.         printf("continue(y/n)?");
  30.         fflush(stdin);
  31.                                           ch=getchar();
  32.         fflush(stdin);
  33.     }while(ch=='y');
  34.     fclose(fp);
  35. }
复制代码
就是這樣, 原來是自己的問題 少寫了個fflush(stdin)
不過在TC上確實是有我說那個問題的,人家解釋說
“scanf的浮点格式转换程序没有连接。因为TC开发时DOS下的存储资源紧缺,因此TC在编译时尽量不加入无关部分。在没发现需要做浮点转换时,就不将这个部分安装到可执行程序里。但有时TC不能正确识别实际确实需要浮点转换,因此就会出现上面错误。”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-11-6 17:25 , Processed in 0.010363 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表