[ create a new paste ] login | about

Link: http://codepad.org/lqKLztNc    [ raw code | fork ]

Plain Text, pasted on Jul 5:
あるファイル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 
.....
 


Create a new paste based on this one


Comments: