我通过运行这个最简单的代码得到了这个错误:
#include "stdio.h"
#include "stdlib.h"
int main()
{
FILE* in;
FILE* out;
in = fopen("foo.in", "r");
out = fopen("bar.out", "w+");
int something;
fscanf(in, "%i", something);
fprintf(out, "%i", something);
fclose(in);
fclose(out);
return 0;
}
我正在使用Sublime Text 3。
答案 0 :(得分:2)
fscanf
需要一个指针,这意味着它会在函数something
中修改fscanf
的值,如果你通过复制发送它,那么在范围内这个值是正确的(即在fscanf
)但结果永远不会返回,因此something
的副本永远不会更改(即它仍未初始化)。
所以你需要做什么:
int something;
fscanf(in, "%i", &something);
fprintf(out, "%i", something);
如果您尝试读取foo.in
中的整数并将其写入bar.out
,它应该可以正常工作。