掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24741

ファイルの入出の課題がわかりません
投稿者---マキ(2005/12/12 15:21:59)


キーボードから5名分のID番号と身長を入力し,入力したデータは1130kadaiINP.txtという名前のファイルに出力し,入力した5名のID番号,身長および身長の平均値を出力例にならって画面とファイル(1130kadaiOUT.txt)に出力するプログラムを作り,実行結果とともに提出しなさい.プログラム作成にあたっては,以下の点を守ること:
(1)プログラム実行時にプログラムに渡す引数の数が1のとき(つまりプログラム名のみの場合)や2より大きいときには,実行例1のようにエラーメッセージを出力するようにしなさい.
(2)出力ファイル(1130kadaiOUT.txt)の名前は,プログラム実行時に引数として渡すようにしなさい(実行例2を参考のこと).ただし,入力データを出力するファイル(1130kadaiINP.txt)の名前については,プログラム中で定義しなさい(strcpy関数を使ってよい).
(3)身長を入力する際にはセンチメートル単位で,出力する際にはメートル単位で小数点第3位まで表示すること.なお,1130kadaiINP.txtファイルに出力する身長はセンチメートル単位のままでよい(出力例を参照).
プログラム名は1130kadai1.cとし,実行結果(今回は画面とファイルに出力するため,ファイルに出力されたものをそのまま提出すればよい)は1130kadaiOUT.txtを提出すること.
なお,今回の授業で習った事項と,前回の授業で習った「構造体」の配列と,6回目の授業(11月9日)で習った「値を返さない関数」を定義しそれを用いること.「値を返さない関数」では,入力データや結果をファイル(や画面に)出力するようにプログラムを作成する.これらを用いずに作ったプログラムおよび実行結果を提出した場合,評価対象外とする.

(ヒント1)構造体の配列は,グローバル変数となるように宣言してよい.
(ヒント2)プログラム実行時に,プログラムに引数を渡す方法は今回の授業で習ったとおり,main関数をmain()と書くのではなく次のように書けばよい:
main(int argc, char *argv[])

 プログラム実行時にプログラムに渡される(main関数に渡される)引数の数は上記の場合argcという整数型変数に格納される.プログラム実行時にプログラム名以外の引数が無い場合argcは1となる(プログラム名そのものが引数1個とみなされることに注意!).従って,
/* Error check */
if ((argc == 1) || (argc > 2)) {
fprintf(stderr, "%s usage: %s (output file name)\n", argv[0], argv[0]);
exit(1);
}
のようにすると良い(この部分は提出するプログラムにも使用して構わない).if文の中の||は2項演算子と呼ばれ,(式1) || (式2)と書くと「式1あるいは式2のいずれか」という意味になる(論理和).

(実行例1)引数(結果を書き込むファイルの名前)を入れない場合,次のようになる:
$ ./1130kadai1
./1130kadai1 usage: ./1130kadai1 (output file name)
$

(実行例2)引数をいれると,次のようになる:
$ ./1130kadai1 1130kadaiOUT.txt
INPUT 1-th Data (ID, Height[cm]): 1 170.5
INPUT 2-th Data (ID, Height[cm]): 2 150.3
INPUT 3-th Data (ID, Height[cm]): 3 160.8
INPUT 4-th Data (ID, Height[cm]): 4 155.2
INPUT 5-th Data (ID, Height[cm]): 5 191.0
No. ID Height[m]
(1) 1 1.705
(2) 2 1.503
(3) 3 1.608
(4) 4 1.552
(5) 5 1.910
AVERAGED.: 1.656
$ cat 1130kadaiOUT.txt ... catコマンドはテキストファイルを画面に打ち出すコマンド.
No. ID Height[m]
(1) 1 1.705
(2) 2 1.503
(3) 3 1.608
(4) 4 1.552
(5) 5 1.910
AVERAGED.: 1.656
$

(出力例)キーボードから入力したデータは次のように1130kadaiINP.txtというファイルに出力される:
$ cat 1130kadaiINP.txt
YOUR INPUT DATA:
No. ID Height[cm]
(1) 1 170.500
(2) 2 150.300
(3) 3 160.800
(4) 4 155.200
(5) 5 191.000
$


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイルの入出の課題がわかりません 24744 REE 2005/12/12 15:52:21
<子記事> Re:ファイルの入出の課題がわかりません 24745 nop 2005/12/12 16:01:48


No.24744

Re:ファイルの入出の課題がわかりません
投稿者---REE(2005/12/12 15:52:21)


なるほど、そういう課題が出たのですね。
で、ご用件はなんでしょう?



この投稿にコメントする

削除パスワード

No.24745

Re:ファイルの入出の課題がわかりません
投稿者---nop(2005/12/12 16:01:48)


【掲示板利用宣言】で挙げられている、以下の項目が守られておりません。
掲示板の利用規約はよく読んで、
そして、書かれている事を守って投稿して下さい。

・課題の丸投げはしません。
・ソースの添付は「HTML変換ツール」で字下げします。
・環境(OSとコンパイラ)や症状は具体的に詳しく書きます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧