c - 我如何在 C 文件的开头 fprintf 字符串?

标签 c file-io printf

我编写了这个 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/

相关文章:

c# - 为什么 File.WriteAllText() 通过添加逗号来格式化我的数字?

c - 删除C中特定文件夹中的文件

c - 将 printf 重定向到管道 C

c - fgets 限制输入长度

c - 无法编写合并排序代码

c - 如何从 C 中的图像目录创建视频

c - 为什么我的 C 程序在 printf 之前停止?

c - snprintf 中的 %c%.8x 格式意味着什么

windows - 为所有用户存储具有读\写权限的应用程序数据的最佳目录?

c - 如何打印循环结果?