課題 [13] ファイル処理(3/9)

問 3(提出プログラム名:ex1303.c)

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

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

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

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

以下の実行例1と2は連動している.実行例1を実行して結果を確認した後に,引き続いて実行例2を実行して内容が適切に書き足されていることを確認せよ!

  • 【プログラムの実行結果】(その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 問は明日(7/19)の 16時までに提出を済ませてください.
(ex1301.c ~ ex1303.c を Moodle から提出してください.)
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.なお,コンパイルエラーや無限ループが含まれる場合は総合評価を 0 点とします.
提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.


次のページ以降に問 4 ~問 9 があります.
問 4 以降を明日の16時までに早期提出した場合は加点の対象とします
(一部のみを早期提出してもよいです).
※なお,明らかに間違っている(まともに動かない)プログラムを早期提出するのは絶対にやめてください.不正に加点を得ようとした行為と見なして減点とします.

次の問題へ → [ 問4 (ex1304.c) ]