かつて学生に指導したときのメモが残っていたので,文章にしました.
学生が,Cでプログラムを書いていて,printfデバッグだと出力する情報が多すぎるので,重要な情報をファイルに出力することにしました.そのときのアドバイス…
- 文字列を引数にとり,それをファイルに書き込む関数を定義して,呼び出すようにします.関数の中でその都度,ファイルを開き(fopen),文字列を書き込み(fputsまたはfprintf),閉じます(fclose).
- 毎回開いて閉じるのは非効率的なので,ファイルを開く処理,閉じる処理を別に書くのもいいでしょう.ただし,ファイルを開いているのに,別のところで開いてはいけません.そうすると,どちらかの内容しか保存されません*1.
- fopenの第2引数を"w"にしていると,ファイルを開くたびに中身がなくなってしまい,結局,最後の内容しか残りません.こういうときは,"w+"を指定して,追加書き込みにします*2.