请问这代码问题出在哪?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *in,*out;
int num;
in=fopen("in.txt","r");
out=fopen("out.txt","w");
while(fscanf(in,"%d",&num)!= EOF)
printf("%d",num);
fclose(in);
fclose(out);
return 0;
}
in.txt里面的内容是
76549879484
为什么一运行就打印了-759531844
[解决办法]
printf("%d",num);
32位系统下 %d (int) 的最大值是4294967296
你改成%ld 试试。
[解决办法]
你的txt文件是以什么格式存的,如果是unicode会自动在前面加点东西以标识它是unicode文件,用ultraedit以二进制打开看看吧,而且txt里存的是文字也就是“76549879484”这个字符串。