Input.txt:
File entry structures:
[0] "" 0 -1
[1] "" 0 -1
[2] "" 0 -1
[3] "" 0 -1
[4] "" 0 -1
我想创建一个新文件(output.txt)。该C程序将第一个出现的 "" 替换为 "Testfile",因此它看起来像这样:
Output.txt:
File entry structures:
[0] "Testfile" 0 -1
[1] "" 0 -1
[2] "" 0 -1
[3] "" 0 -1
[4] "" 0 -1
我迄今为止的工作:
#include <stdio.h>
int main() {
FILE *input_file, *output_file;
int size, fblock;
char index[81];
char name[81];
input_file = fopen("input.txt", "r");
output_file = fopen("output.txt", "w");
// ignore "File entry structures:" line when reading/writing
while (fscanf(input_file, "%80s %80s %d %d", index, name, &size, &fblock) == 4) {
fprintf(output_file, ... );
}
我不确定应该将什么内容提供给fprintf
的第二个参数。我的目标是以与输入文件相同的方式编写它。
fscanf
中的参数。你的编译器是否对第4个格式说明符的类型不匹配发出警告?为什么传递&size
而不是fblock
?你提供了4个格式说明符,但期望fscanf
返回2
,这是不匹配的。 - Gerhardhfprintf
,您可以简单地使用"%s %s %d %d\n"
作为格式字符串,但是您的代码缺少替换字符串的逻辑。 - Gerhardhhttps://cplusplus.com/reference/cstdio/printf/学会阅读和理解这些类型的参考资料,事情就会变得更容易。 - Samuel Åslund
fscanf
,因为它不提供有关空格的任何信息。 - Gerhardh""
。 - Gerhardh