【課題7−2】

 

(プログラム例)

#include <stdio.h>

#define NROWS 10

#define NCOLS 10

int main(void) {

         FILE *fp;

         char infile[]="example.dat";

         char outfile[]="example2.txt";

         double buf[NROWS][NCOLS];

         int i, j;

 

         /* バイナリファイルを読み込みモードでオープン */
         if ((fp=fopen(infile, "rb"))==NULL) {

                 fprintf(stderr, "Data file open error.\n");

                 return 1;

         }

         /* ファイルの中身を二次元配列bufにまとめて読み込み */

         fread(buf, sizeof(double), NROWS * NCOLS, fp);

         fclose(fp);

 

         /* テキストファイルを書き込みモードでオープン */

         if ((fp=fopen(outfile, "w"))==NULL) {

                 fprintf(stderr, "Result file open error.\n");

                 return 1;

         }

 

         /* 二次元配列bufの各要素をタブ区切り形式で書き出し */

         for (i = 0; i < NROWS; i++) {

                 for (j = 0; j < NCOLS; j++) {

                          fprintf(fp, "%f", buf[i][j]);

                          if (j == NCOLS-1) {

                                  fprintf(fp, "\n");

                          } else {

                                  fprintf(fp, "\t");

                          }

                 }

         }

 

         fclose(fp);

 

         return 0;

}