FILE *fp;
fp=fopen("ファイル名","モード"); ..... fclose(fp); |
fprintf(fp,"書式指定", 変数); fscanf(fp,"書式指定", 変数); |
(例題12−1)
以下は out.d をオープンし i と j=2*i-1 を out.d
に出力するプログラムです。作成し実行してみましょう。
以下のlessコマンドはファイルを少数行表示するコマンド。ファイルサイズが小さい場合、catコマンド(全ファイル内容表示)でも良い。
(実行結果 )
gcc ex12-1.c -o ex12-1
./ex12-1
less out.d
0 1
1 3
2 5
3 7
4 9
5 11
6 13
7 15
8 17
9 19
10 21
(課題12−1)
x と y=sin(x) を out2.d というファイルに出力するプログラムを作成し実行しなさい。 x の範囲は 0 から
10 までとし 0.1 きざみに出力しなさい。
(ヒント) for 文で整数 i を 0 から 100 まで 1 きざみでループをまわし x=0.1*i とする。
出力された結果を gnuplot
で表示して結果を確かめなさい。(gnuplot が使えなければ省略)
gnuplot
gnuplot> plot "out2.d"
gnuplot> replot sin(x)
(例題12−2)
以下は例題12−1 で作成した out.d をオープンし、データを配列 v1,v2 に読み込み、 v2
にマイナス(−)を乗じて out2.d に出力するプログラムです。作成し実行してみましょう。
(実行結果 )
gcc ex12-2.c -o ex12-2 ./ex12-2
less out3.d
0 -1
1 -3
2 -5
3 -7
4 -9
5 -11
6 -13
7 -15
8 -17
9 -19
10 -21
(課題12−2)
課題12−1で作成した out2.d のデータを配列 v1,v2 に読み込んで、v2 の値を2乗して out4.d に出力するプログラムを作成して実行しましょう。
出力された結果を gnuplot で表示して結果を確かめなさい。
(課題12−3)
課題12−1で作成した out2.d のデータを v1,v2 に読み込んで、数値微分 (v2[i+1]-v2[i])/(v1[i+1]-v1[i])を out5.d に出力するプログラムを作成し実行しましょう。i=0から 99 までに注意。
余裕のある人へ
(課題12−4)
N個の整数が並んだファイルを読み込んで、大きい順に並べて別のファイルに出力するプログラムを作成して実行しましょう。