首页 > 解决方案 > fprintf 输出文件不镜像源文件中的内容

问题描述

我正在学习编码。我正在尝试从一个文件打印到下一个文件,但结果与源文件不完全相同。我试过橡胶闪避,但找不到问题。我不明白为什么它没有准确地打印结果,除了零。下面是源文件exam.txt的内容

BECDCBAADEBACBAEDDBE
456  CBAEXCDABECXDEABCDEA
567  ECABXCDEBAEDBADCEBAC
234  JHGVCDDGF
764  JHGGVVFD
0

这是我认为应该工作的代码。没有收到任何警告信息或任何东西

FILE*in=fopen("exam.txt","r");
FILE*out=fopen("output.txt","w");
char answer[100][20],correct[20];
int candidate[100];
fscanf(in,"%s",correct);
int j=0;
fscanf(in,"%d %s",&candidate[j],answer[j]);
while(candidate[j]!=0)
    {j++;fscanf(in,"%d %s",&candidate[j],answer[j]);}
fprintf(out,"%s\n",correct);
for(int r=0;r<j;r++)fprintf(out,"%d   %s\n",candidate[r],answer[r]);
fclose(in);
fclose(out);

但这是我得到的输出

BECDCBAADEBACBAEDDBECBAEXCDABECXDEABCDEAECABXCDEBAEDBADCEBACJHGVCDDGF
456   CBAEXCDABECXDEABCDEAECABXCDEBAEDBADCEBACJHGVCDDGF
567   ECABXCDEBAEDBADCEBACJHGVCDDGF
234   JHGVCDDGF
764   JHGGVVFD

我尝试了橡皮闪避,但就是不知道为什么它会用前一行打印出后续行。

标签: c

解决方案


推荐阅读