使用 fscanf 读取整数时遇到问题

Trouble reading an integer with fscanf

我已经苦苦挣扎了一天多,试图弄清楚这段代码有什么问题,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;

}

  1. fscanf(arq,"%d%d",&one,&two);
  2. 中添加逗号
  3. 使用 r 标志重新打开文件 - 读取它
  4. 别忘了关闭文件 ;)
  5. 选择。您可以使用 return 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