これらを使った例をリスト3に示す.これは,三角関数の値をファイル
出力するプログラムである.
1 #include <stdio.h>
2 #include <math.h>
3 #define N 360
4
5 int main(void)
6 {
7 FILE *out_file;
8 double x, dphi;
9 int i;
10
11 dphi = 2*M_PI/N;
12
13 out_file = fopen("trifunc.txt","w");
14
15 for(i=0; i<=N; i++){
16 x=i*dphi-M_PI;
17 fprintf(out_file, "%15.7e\t%15.7e\t%15.7e\t%15.7e\n", x, sin(x), cos(x), tan(x));
18 }
19
20 fclose(out_file);
21
22 return 0;
23 }
このプログラムを実行すると,「trifunc.txt」というファイルができる.このファイル の中は,次のようになっている.
-3.1415927e+00 -1.2246064e-16 -1.0000000e+00 1.2246064e-16 -3.1241394e+00 -1.7452406e-02 -9.9984770e-01 1.7455065e-02 -3.1066861e+00 -3.4899497e-02 -9.9939083e-01 3.4920769e-02 -3.0892328e+00 -5.2335956e-02 -9.9862953e-01 5.2407779e-02 -3.0717795e+00 -6.9756474e-02 -9.9756405e-01 6.9926812e-02 -3.0543262e+00 -8.7155743e-02 -9.9619470e-01 8.7488664e-02 -3.0368729e+00 -1.0452846e-01 -9.9452190e-01 1.0510424e-01 -3.0194196e+00 -1.2186934e-01 -9.9254615e-01 1.2278456e-01 -3.0019663e+00 -1.3917310e-01 -9.9026807e-01 1.4054083e-01 -2.9845130e+00 -1.5643447e-01 -9.8768834e-01 1.5838444e-01 -2.9670597e+00 -1.7364818e-01 -9.8480775e-01 1.7632698e-01 -2.9496064e+00 -1.9080900e-01 -9.8162718e-01 1.9438031e-01 途中は省略.長いので全て記述すると紙の無駄. 3.0892328e+00 5.2335956e-02 -9.9862953e-01 -5.2407779e-02 3.1066861e+00 3.4899497e-02 -9.9939083e-01 -3.4920769e-02 3.1241394e+00 1.7452406e-02 -9.9984770e-01 -1.7455065e-02 3.1415927e+00 1.2246064e-16 -1.0000000e+00 -1.2246064e-16
| (1) |
これらを使った例をリスト4に示す.先ほど作成したファイル内容を読
み込み,ディスプレイに出力するプログラムをである.
1 #include <stdio.h>
2
3 int main(void)
4 {
5 FILE *in_file;
6 double x[500], y1[500], y2[500], y3[500]; //ちょっと多めの要素を確保
7 int i, j;
8
9 in_file = fopen("trifunc.txt","r");
10
11 for(i=0; i<=499; i++){
12 if(EOF == fscanf(in_file, "%lf%lf%lf%lf",&x[i], &y1[i], &y2[i], &y3[i])) break;
13 }
14
15 fclose(in_file);
16
17 for(j=0; j<i; j++){
18 printf("%10.7f\t%10.7f\t%10.7f\t%10.7f\n",x[j], y1[j], y2[j], y3[j]);
19 }
20
21 return 0;
22 }
このプログラムはファイル(trifunc.txt)からデータを読み込み,その値を ディスプレイに出力する.ディスプレイは以下のようになる.
-3.1415927 -0.0000000 -1.0000000 0.0000000 -3.1241394 -0.0174524 -0.9998477 0.0174551 -3.1066861 -0.0348995 -0.9993908 0.0349208 -3.0892328 -0.0523360 -0.9986295 0.0524078 -3.0717795 -0.0697565 -0.9975641 0.0699268 -3.0543262 -0.0871557 -0.9961947 0.0874887 -3.0368729 -0.1045285 -0.9945219 0.1051042 -3.0194196 -0.1218693 -0.9925462 0.1227846 -3.0019663 -0.1391731 -0.9902681 0.1405408 -2.9845130 -0.1564345 -0.9876883 0.1583844 -2.9670597 -0.1736482 -0.9848077 0.1763270 -2.9496064 -0.1908090 -0.9816272 0.1943803 途中は省略.長いので全て記述すると紙の無駄. 3.0892328 0.0523360 -0.9986295 -0.0524078 3.1066861 0.0348995 -0.9993908 -0.0349208 3.1241394 0.0174524 -0.9998477 -0.0174551 3.1415927 0.0000000 -1.0000000 -0.0000000