【问题标题】:fopen and fputs in cc中的fopen和fputs
【发布时间】:2016-06-06 05:35:55
【问题描述】:

您好,我在尝试将数据写入文件时遇到了 fopen 和 fputs。

特别是以下代码:

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
       FILE * fp;

       fp = fopen ("file_out.txt", "a+");
       fprintf(fp, "%s %s %s %d", "We", "are", "in", 2016);

       fclose(fp);

       return(0);
    }

给我这个输出: 我们在 2016 年

这是我所期待和希望的。

但是,当我改变时

fprintf(fp, "%s %s %s %d", "We", "are", "in", 2016);

fprintf(fp, "%s %s %s %d", "We", "are", "in", 3333);

然后重新编译并运行,我仍然得到与以前相同的输出!意思是,打印的是 2016,而不是 3333。非常感谢任何帮助。

【问题讨论】:

  • 怎么重新编译?肯定和代码没有关系。
  • 最可能的答案:您忘记重新编译,忘记重新运行,或者您正在查看错误的文件。
  • 你先保存文件了吗?编译前!!如果你在 code::blocks 中,那么
  • 删除您的文件,运行新代码并告诉我们会发生什么。
  • 您必须运行旧版本。确保您 (1) 保存您的源文件 (2) 重新编译您的源文件 (3) 重新链接您的可执行文件。必须跳过其中一个步骤。我建议删除旧的可执行文件和旧的 .o 文件,然后重新构建。

标签: c fopen fputs


【解决方案1】:

由于您已在附加模式fp = fopen ("file_out.txt", "a+"); 中打开文件,因此您编写的任何内容都将附加到文件中。而且我猜读取文件的实用程序只是读取文件的第一行。因此,您每次都会收到We are in 2016

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2018-12-18
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多