記事一覧
「まず覚える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++」を書きながら内容を
考えます.
|