【发布时间】:2022-01-15 20:25:19
【问题描述】:
我正在尝试使用fscanf 获取输入并将输出提供给另一个文件,但fscanf 没有提供它应该提供的输入。
这是我的代码:
#include <stdio.h>
int main() {
FILE *a;
FILE *b;
int i;
int played_matches, points, goaldif, ranking;
int wins, draws, losses, goals_scored, goals_against;
char team[18];
a = fopen("source.docx", "r");
b = fopen("aim.doc", "w");
for (i = 0; i < 10; i++) {
fscanf(a, "%d %s %d %d %d %d %d", &ranking, &team, &wins, &draws, &losses, &goals_scored, &goals_against);
played_matches = wins + draws + losses;
points = (3 * wins) + draws;
goaldif = goals_scored - goals_against;
fprintf(b, "%d %s %d %d %d ", ranking, team, played_matches, points, goaldif);
}
fclose(a);
fclose(b);
return 0;
}
【问题讨论】:
-
&team 应该只是团队
-
编译时开启更多警告。 example
-
为什么你的纯文本文件有
.docx扩展名? -
如果文件真的是
.docx,那么你需要先找到一份docx规范的副本,然后才能考虑用C程序阅读它。或者,简单的做法是将数字复制/粘贴到纯文本文件.txt中。确保它是纯文本文件,而不是富文本文件。 -
输出文件也将是一个纯文本文件,所以正确的名称是 "aim.txt"。将其称为“aim.doc”不会使其成为 doc 文件。称其为真正含义以避免混淆。
标签: c input output scanf filereader