- ベストアンサー
C言語---ファイルに出力したデータをすべて消去する方法
C言語の話です。 はじめ、ファイルを"w"モードで開き、 fprintfで繰り返してデータをファイルに書き込んで、 ある条件(何らかのエラーがおきた場合)には今まで書き込んだものは すべて 消去します。 (つまり、ファイルを再び空にするという意味です。) この場合、もうこれ以上ファイルに書き込むことはしないで、プログラムは終了します。 書き込んだものを消去するには、どのようにすればよいですか。 「一度ファイルを閉じて、再び"w"モードで開き、また閉じる」 というのが私が考えるいちばん簡単な方法なんですが、 ファイルの中身を消去するために開いたり閉じたりしなきゃいけないの? という気もします。 本で見ると、freopenという関数が使えそうな気もしますが、 わたしはこの関数を使ったことがありませんし、 解説を読んでも、本当にこのような場合に使うものなのかな、 という感じがします。 そんなにプログラミングに詳しくないので、やさしくご回答いただけるとたすかります。
- みんなの回答 (6)
- 専門家の回答
お礼
>freopen(filename, "w", oldfp); >--- >の何れかを実行すれば、ファイルサイズ0 >(中身が空)のファイルが作成されます。 freopenは使えるんですね。 >やはり一旦閉じた後、モード "w" で >再度開きなおすのがセオリーでしょう。 やはりそうですか。ありがとうございました。