scanf : floating point formats not linked问题的研究与解决

来源:互联网 发布:淘宝未评价就删除订单 编辑:程序博客网 时间:2024/06/09 18:02

 scanf : floating point formats not linked问题的研究与解决

Turbo C(TC)系统的浮点连接错误
用TC-2.0系统编写小的C程序,如果程序里用到浮点输入,有时运行中会出现下面错误信息:

scanf : floating point formats not linked
Abnormal program termination

这个错误信息的意思是:scanf的浮点格式转换程序没有连接。

TC开发时(80年代)DOS下的存储资源紧缺,因此TC在编译时尽量不加入无关部分。在没发现需要做浮点转换时,就不将这个部分安装到可执行程序里。但有时TC不能正确识别实际确实需要浮点转换,因此就会出现上面错误。

解决方法:设法告诉TC需要做浮点数输入转换。下面例子里增加了一个double变量并用它输入。

大程序里由于变量很多,只要有了线索,TC就会把浮点转换连上,因此反而不常遇到这个问题。

 

 

这条错误信息的含义是没有链接浮点库。一般出现这条错误信息是因为在调用scanf、printf之前没有使用过浮点运算,解决的办法也很简单,随便给浮点数赋个值就行了  
   
  你在程序的随便哪一个地方加上这  
  static   void   force_fpf()  
                      {  
                              float   x,   *y;   /*   Just   declares   two   variables   */  
                              y   =   &x;             /*   Forces   linkage   of   FP   formats   */  
                              x   =   *y;             /*   Suppress   warning   message   about   x   */  
                      }  

 

 

也可以

在main开始加:
float arg,*point=&arg;
就连接了浮点库了

 

 

或者,随便给浮点数赋个值就行了。
比如先写个float a=0.0;