20131013【C言語】配列の中身を一度に書き込む

お題

配列の中身を一度にファイルに書き込む

 

プログラム概要

10個の要素を持つ浮動小数点型の配列を用意し、

fwriteを使って一度でファイルに書き込む。

その後、そのファイルを読み込んで

一度で配列に読み込み、配列の要素を画面に表示する。

 

ソース

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 int i;
 FILE *fp;

 double d[10] = {
  1.1, 1.2, 1.3, 1.4, 1.5,
  1.6, 1.7, 1.8, 1.9, 2.0
 };

 if *1 == NULL) {
  fprintf(stderr, "Cannot open myfile.\n");
  exit(1);
 }

 /* Write array to file */
 if (fwrite(d, sizeof d, 1, fp) != 1) {
  fprintf(stderr, "Error while writing.\n");
  exit(1);
 }
 fclose(fp);

 if *2 == NULL) {
  fprintf(stderr, "Cannot open myfile.\n");
  exit(1);
 }

 /* Clear array */
 for (i = 0; i < 10; i++)
  d[i] = -1.0;

 /* Read array from file */
 if (fread(d, sizeof d, 1, fp) != 1) {
  fprintf(stderr, "Error while read myfile.\n");
  exit(1);
 }
 fclose(fp);

 /* Print array */
 for (i = 0; i < 10; i++)
  printf("%f ", d[i]);

 return 0;
}

実行結果

1.100000 1.200000 1.300000 1.400000 1.500000 1.600000 1.700000 1.800000 1.900000 2.000000

 

 

 

*1:fp = fopen("myfile", "wb"

*2:fp = fopen("myfile", "rb"