我编写了这个 C 代码段以使用 for 循环将“n”个单词读入文件。应该在我每次使用 fseek
到达的文件开头插入一个新词。
问题:只有最后扫描的词被放入文件,而前面的 n-1 个词没有出现在文件中。没有显示错误和消息“完成!”正确打印'n'次。我做错了什么吗?
printf("No. OF words: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter word: ");
scanf("%s",word);
fprintf(fp,"%s \n",word);
printf("done!\n\n");
fseek( fp, 0, SEEK_SET );
}
fclose(fp);
最佳答案
无法在文件开头追加。您当前的代码正在覆盖文件之前的内容。
你基本上有两个选择:
将所有单词存储在内存中,并按所需顺序打印到文件或
读取整个文件,fseek
到开头,打印新词,然后打印其余内容。
关于c - 我如何在 C 文件的开头 fprintf 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603550/