c/c++开发分享从C中的文件中读取整数

很长一段时间我一直在努力解决这个问题,我猜这是一个非常愚蠢的noob错误,但我无法弄明白。

所以我试图读取一个文件中的整数,然后在其中执行一些操作,为了问题我只是想在这里输出它:

FILE * pFile; int number; pFile = fopen ("myfile.txt","r"); if (pFile!=NULL) { fscanf(pFile, "%d", number); fclose (pFile); } printf("number: %i", number); return 0; 

myfile.txt的内容:

 123 

但是当我运行它时它并没有读它,而是它说

 RUN FAILED (exit value 1, total time: 32ms) 

感谢您的帮助

编辑:我忘了提,它作为一个字符串,它读取正确的数字,但我不能对它进行任何操作,如果我将数字类型设置为双倍它工作,但输出一些数百万的随机数。 ..

    您需要将int变量的地址传递给fscanf

     fscanf(pFile, "%d", &number); 

    你忘了传递fscanf数字的地址而不是数字的值。 所以更换

     fscanf(pFile, "%d", number); 

     fscanf(pFile, "%d", &number); 

    有必要将/ a指针的地址传递给number,否则无法修改数字的内容。

    你需要一个指向数字的指针

     fscanf(pFile, "%d", &number); 

    检查fscanf的返回值是个好主意

    你也可能需要做同花。

    即printf后添加行

     fflush(stdout); 

    如果您无法打开文件,您还需要初始化number或进行return

    总而言之,代码看起来应该是这样的

     FILE * pFile; int number; pFile = fopen ("myfile.txt","r"); if (NULL == pFile && 1 == fscanf(pFile, "%d", &number)) { printf("Number: %i", number); fflush(stdout); return 0; } else { return -1; } 

      以上就是c/c++开发分享从C中的文件中读取整数相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/545975.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注