codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
あるファイルtest.datの中にテキストで実数が羅列されている。この実数を読み込んで表示するプログラムkadai12-1.cを作ってみよう。 kadai12-1.cでは次のようなmain()を定義したとする。 #include <stdio.h> #include <stdlib.h> void display_file(FILE *fp); int main() { char INFILENAME[100]; //ファイル名を格納する文字列 FILE *in_fp; scanf("%s", INFILENAME); //ファイル名をキーボード入力 in_fp = fopen(INFILENAME, "r"); //ファイルを開く if (in_fp == NULL) {//ファイルが開けない場合はin_fpがNULLになる。(ファイルが見付からない時等) fprintf(stderr, "I cannot open %s\n", INFILENAME);//標準エラー出力にエラーメッセージを出力 exit(1); } display_file(in_fp); //ファイルの中身を全部画面表示する関数 fclose(in_fp); //ファイルを閉じる } ○ 上記main関数の中の void display_file(FILE *fp)を以下の仕様を満たすように定義し、kadai12-1.cを完成させなさい。 読み込むファイルは上記プリプロセッサで定義されたFILENAMEにある. これをcat して中身を見ると、 cat /usr4/yamauchi/yamauchi/data/test.dat 1.000000 1.136735 1.010000 1.137647 1.020000 1.137143 1.030000 1.137957 1.040000 1.142641 1.050000 1.153101 ..... と数値が1行に2個ずつ列挙されている。これらのデータを読み取って 1.000000 1.136735 1.010000 1.137647 ... のように1行に1つずつ数値を列挙するように定義しなさい。但し、ファイルポインターがファイルの最後か否かを判定する関数として int feof(FILE *fp)が準備されている。この使いかたは次で調べよ。 man feof すると、使用方法が表示される。 実行例: gcc kadai112-1.c ./a.out 1.000000 1.136735 1.010000 1.137647 .....
Private
[
?
]
Run code
Submit