練習 [13] ファイル処理(3/5)

練習 3(提出プログラム名:p1303.c)

まず,このプログラム(p1303.c)をダウンロードしなさい.
p1303.c はサンプルプログラム3(sample3.c)を編集して,指定された文字列を指定された個数だけファイルへ書き込もうとした途中のもの(未完成)である.これを完成させなさい
<注意>上のプログラムでは if 文の中で fopen もまとめて書いてある
例年,これに気付かずに fopen を新たに書き足すという間違いをする人が多いので注意せよ.

【目的の処理】
 (1)まず,名前の代わりに適当な文字列(途中に空白は含まない)を 1 つ読み込む.
 (2)次に,整数 n を読み込む(n は 1 以上と仮定してよい).
 (3)最後に,(1)で読み込んだ文字列を n 個連続して log.txt へ書き込む(追記する)
   ただし,2 個目以降を書き込む際にはその前にハイフン(-)も 1 個入れることとし,
   (最後の)n 個目の後には改行も書き込むこと.

【注意】
以下の実行例で作成される log.txt の場合,1 個目の ###hello の左にはハイフン(-)は入っていない点に注意せよ(ハイフンが入るのは 2 個目以降のみ).

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
追加したい文字列(空白無し)を入力してください:###
繰り返しの回数を入力してください:4
log.txt に ### を 4 回繰り返し書き込みました
【実行例1を実行後の log.txt の内容;実行前は空であったとする】
###-###-###-###
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
追加したい文字列(空白無し)を入力してください:hello
繰り返しの回数を入力してください:3
log.txt に hello を 3 回繰り返し書き込みました
【実行例1の後に実行例2を実行してできる log.txt の内容】
※ファイルへ書き込む際,末尾に改行を入れ忘れていると,以下のようにならずに横につながってしまうので注意せよ.
###-###-###-###
hello-hello-hello

【過去にあったミス(減点となり,やり直しを命じられる)】
2 種類の実行例を確認せずに提出してしまっている.
 例えば,1 個目の文字列の左にもハイフン(-)が入ってしまっていたり,毎回改行してしまっている.
■ 文字列を n 個連続して書き込んだ後に改行を書き込むのを忘れている.
 (これを忘れると実行例1,2の順に動かした場合に横につながってしまう)
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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