3.10 簡単なファイル入出力

input.data
2 3
というように1行に2つの整数が記録されているファイルを読み込んで、 その 2 数の和を計算し、その結果を
output.data
5
のようにファイルに記録するにはどうすれば良いか。

prog13.c

/*
 * prog13.c --- fopen(), fclose(), fprintf(), fscanf() を使ったファイル入出力
 *  コンパイルは gcc -o prog13 prog13.c
 */

#include <stdio.h>

int main(void)
{
  int a, b, sum;
  FILE *in, *out;

  in = fopen("input.data", "r");
  /* 本当はここで in が NULL でないかチェックすべき */
  fscanf(in, "%d%d", &a, &b);
  fclose(in);

  sum = a + b;
  printf("%d と %d の和は %d\n", a, b, sum);

  out = fopen("output.data", "w");
  fprintf(out, "%d\n", sum);
  fclose(out);

  return 0;
}

なお、fopen() に失敗することも多い。 エラー・チェックをするように修正すると次のようになる。



Subsections

桂田 祐史