我已经挣扎了一天多试图找出这段代码的错误,printf总是在我的屏幕上打印0。
#include <stdio.h>
#include <ctype.h>
int main()
{
int one=0,two=0;
FILE *arq;
arq = fopen ("testando.txt","w+");
fprintf(arq,"1,2,3\n");
fscanf(arq,"%d%d",&one,&two);
printf("%d %d\n",one,two);
return 0;
}
最佳答案
在fscanf(arq,"%d%d",&one,&two);
中添加逗号
用r
标志重新打开文件-读取
别忘了关闭文件;)
选择。可以使用fscanf的返回值来检查填充了多少属性
这很管用:
#include <stdio.h>
#include <ctype.h>
int main()
{
int one=0,two=0;
FILE *arq;
arq = fopen ("testando.txt","w+");
fprintf(arq,"1,2,3\n");
fclose(arq);
arq = fopen("testando.txt","r");
int r = fscanf(arq,"%d,%d",&one,&two);
fclose(arq);
printf("%d %d %d\n",r, one,two);
return 0;
}
输出:
2 1 2