从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; }