これらを使った例をリスト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