このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/23
#  [1] 授業単元:C言語  
#  [2] 問題文(含コード&リンク):http://ime.nu/ideone.com/jE2IX  
#  
#  あるファイルtest.datの中にテキストで実数が羅列されている。この実数を読み込んで表示するプログラムkadai10-1.cを作ってみよう。
#  kadai10-1.cでは次のようなmain()を定義したとする。
#   
#  #include 
#   #include 
#   
#   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)を以下の仕様を満たすように定義し、kadai10-1.cを完成させなさい。
#   読み込むファイルはscanfにてキーボード入力するが、このとき、 /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
#  すると、使用方法が表示される。

display_file(Instream) :-
        get_split_lines(Instream,[' '],LL),
        flat(LL,L),
        append(_,[V|R],L),
        writef('%t\n',[V]),
        R = [].