ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

Cの文法 (17)

2010-10-05 18:56:08 | 暮らし
記事一覧
「まず覚えるCの文法」校正中)

P64: ファイル入出力
//-------------------------------------
#include <stdio.h>
#include <math.h>
int main(void){
  FILE *fp;
  int i, k; double x[10];
  fp=fopen("log10.txt", "w");
  if(fp==NULL){return 1;}
  for(i=1; i<10; i++){
    printf("%d, %f\n", i, log10(i));
    fprintf(fp, "%d, %f\n",
            i, log10(i));
  }
  fclose(fp);
  printf("quit="); scanf("%d", &i);
  if(i!=0){return 0;}
  fp=fopen("log10.txt", "r");
  if(fp==NULL){return 2;}
  for(i=1; i<10; i++){
    fscanf(fp, "%d, %lf\n", &k, x+i);
    printf("%d, %f\n", k, x[i]);
  }
  fclose(fp);
  return 0;
}
//-------------------------------------

P65: 強制終了
//-------------------------------------
#include <stdio.h>
double q(double x, double y){
  if(y==0){
    printf("div by 0\n"); exit(1);
  }
  return x/y; 
}
int main(void){
  double a, b;
  printf("a="); scanf("%lf", &a);
  printf("b="); scanf("%lf", &b);
  printf("a/b==%f\n", q(a, b));
  return 0;
}
//-------------------------------------

計算結果を画面に表示する代わりにテキストファイルに
出力しておくと,それをプリンタで印刷できます.また
キーボードの代わりに予め作っておいたテキストファイ
ルからデータを入力することもできます.具体的な方法
を常用対数表の作成と入出力を行う P64 のプログラムで
説明します.
(1) (#64)の数学関数を使うには「#include <ath.h>」が
   必要です.
(2)「FILE *fp; fp=fopen("log10.txt", "w");」はファ
   イル log10.txt に出力準備をシステムに要求します.
   準備に失敗すると fp の値は NULL になります.
(3)「fprintf(fp, "%d, %f\n", i, log10(i));」の意味
   は「printf("%d, %f\n", i, log10(i));」と同様です.
(4) 処理が終了すれば「fclose(fp);」でファイルを解放
   します.
(5)「fp=fopen("log10.txt", "r");」はファイル log10.
   txt からの入力の準備をシステムに要求します.
(6)「fscanf(fp, "%d, %lf\n", &k, x+i);」の意味は
   「scanf("%d, %lf\n", &k, x+i);」と同様です.
(7) 処理が終了すれば「fclose(fp);」でファイルを解放
   します.

・fopen() の引数 "w" は,ファイルが存在しなければ作
  成して出力し,存在すれば上書きします.ファイルの
  末尾に追加するときは "a" を用います.
・[#62]の getc(), fgets(), fread(), [#63]の putc(),
  fputs(), fwrite() については各自調べてください.

実行中のプログラムを強制的に終了させるときは exit() 
を実行します.引数は任意の整数値で結構です.(習慣的
には 0 は正常終了)

・[#65]の rand(), malloc(), difftime() の機能や使用
  例は各自調べてください.

問は省略します.

=================================================--===

Cの文法(0):
ぼんさいノート「まず覚えるCの文法」はオブジェクト指向
プログラミングの説明に必要な(オブジェクト以前の)予備
知識を与えるために作成した本文 12 頁の資料です.

ぼんさいノート progJ.pdf は未着手です.とりあえず構造体
の説明は済んだので,「Cから見たC++」を書きながら内容を
考えます.