2011-06-20 3 views
3

、次のコードでは:0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9C:私は理解されるようにfopenとFPRINT

int main() { 
    FILE * f1; 
    f1 = fopen("f1.txt","a"); 
    for (i =0 ; i<10;i++) fprintf(f1,"%d ",i); 
    fclose(f1); 
    f1 = fopen("f1.txt","a"); 
    for (i =0 ; i<10;i++) fprintf(f1,"%d ",i); 
    fclose(f1);} 

私は、ファイルF1で次のシリアルを取得します。なぜか分からなかった。ファイルを閉じてもう一度開くと、そのファイルは覚えていません。私は2番目のループが前にあったテキストを上書きすると予想していましたが、私はちょうど0 1 2 3 4 5 6 7 8 9になるでしょう。どうしたの?

答えて

10

ファイルをモード「a」で開くのは、追加を表すためです。新しいテキストがファイルの末尾に追加されます。

あなたがそこにすでに何を上書きしたい場合は、を有する第2のfopenを置き換える:

f1 = fopen("f1.txt", "w"); 

「W」は書き込みの略で、あなたの新しいテキストであり、すでに何置き換えられます。

2

"a"を意味する。追加;あなたは代わりに"w"書き込み)を代わりにしたいですか?

1

fopenの第2引数に "a"を渡したときにファイルを開いたので、データが追加されました。

関連する問題