我已经挣扎了一天多试图找出这段代码的错误,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

10-08 02:49