課題 [12] ファイル処理(2/9)

問 2(提出プログラム名:ex1202a.c)

このプログラム(ex1202a.c)をダウンロードし,その中の関数 write_symbols を完成させなさい

関数 write_symbols は,指定されたファイルへ
  x 個の +y 個の #z 個の @
を追加で書き込むものとする.
ただし,3 種類の記号を書き込んだ後(末尾)には改行も書き込むものとする.
なお,この関数の引数は次の 4 つである:
  fp:書き込み対象のファイルを参照しているファイルポインタ
  x:書き込む + の個数
  y:書き込む # の個数
  z : 書き込む @ の個数

この問題では,x, y, z はいずれも 0 以上の整数であると仮定してプログラムを作ってよい.

【注意】
関数 main の内容は一切書き換えないこと.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
出力先のファイルの名前を入力してください:data.txt
3 つの整数(+ の個数,# の個数,@ の個数)を入力してください:3 5 2
3 個の +, 5 個の #, 2 個の @ を data.txt に追加しました.
【実行例1でdata.txtに書き込まれる内容;事前にdata.txtは存在していなかった場合】
※行末に改行を書き込むのを忘れないこと.
+++#####@@
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
出力先のファイルの名前を入力してください:data.txt
3 つの整数(+ の個数,# の個数,@ の個数)を入力してください:1 3 1
1 個の +, 3 個の #, 1 個の @ を data.txt に追加しました.
【実行例1の続きで実行例2を行った後のdata.txtの内容】
+++#####@@
+###@

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
書き込まれるファイルの内容が上の例と違うきちんと確認していない).
■ 書き込まれる文字列の末尾に改行を書き忘れている.
記号と記号の間に不要な空白が入ってしまっている.
注意書きを見落としていて main 関数の中身を書き換えてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問 3 (ex1203a.c) ]