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