c/c++语言开发共享C,从文本文件中读取双精度值

嗨,只是得到一些奇怪的输出,试图将输入作为C中的双值读取。当输入是整数时,不会发生这个问题,无论如何都要使它与double一起工作?

#include "stdafx.h" int main(void) { double a, b, c, d, i; FILE *inp; inp = fopen("C:\Users\student\Documents\Visual Studio2012\Projects\ConsoleApplication3\test.txt", "r"); i = fscanf(inp, "%f %f %f %f", &a, &b, &c, &d); while (i != EOF) { printf("a = %f & %d n", a, i); printf("b = %f & %d n", b, i); printf("c = %f & %d n", c, i); printf("d = %f & %d n", d, i); printf("%d n", EOF); i = fscanf(inp, "%f %f %f %f", &a, &b, &c, &d); } fclose(inp); return 0; } 

    想通了, fscanf%f应该是%lf

    fsacnfprintf语句中将说明符更改为%lf 。 像这样 –

     fscanf(inp,"%lf %lf %lf %lf", &a, &b, &c, &d); 

    其他问题 –

    1.此外, i被声明为double但在printf你使用说明符%d打印它,所以你传递了错误的参数 –

     printf("a = %f & %d n", a, i); // similar in all printf's 

    所以根据我声明iint然后打印它。

    2.另外你应该经常检查fopen返回,所以检查一下。

      以上就是c/c++开发分享C,从文本文件中读取双精度值相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522892.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐