問 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 点とします.
提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.
← [ 問 1 (ex1301.c) ]
← [ 問 2 (ex1302.c) ]
次のページ以降に問 4 ~問 9 があります.
問 4 以降を明日の16時までに早期提出した場合は加点の対象とします
(一部のみを早期提出してもよいです).
※なお,明らかに間違っている(まともに動かない)プログラムを早期提出するのは絶対にやめてください.不正に加点を得ようとした行為と見なして減点とします.
次の問題へ → [ 問4 (ex1304.c) ]