0

こんにちは、ファイルにデータを書き込もうとしているときに、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);

再コンパイルして実行すると、以前と同じ出力が得られます。つまり、3333 ではなく 2016 が印刷されています。

4

1 に答える 1

0

ファイルを追加モードで開いたfp = fopen ("file_out.txt", "a+");ので、何を書いてもファイルに追加されます。そして、ファイルを読み取るユーティリティは、ファイルの最初の行を読み取っているだけだと思います。したがって、あなたはWe are in 2016毎回得ています。

于 2016-06-06T06:14:49.783 に答える