先週に引き続き,ファイル操作の練習をしましょう.
キーボードからの入力(scanf),画面への出力(printf)と,基本は同じです.混乱している人が多いようですが,もう一度,scanf, printfを確認しましょう.
入力 scanf("%d", &n);
出力 printf("%d", n);
○ キーボードから入力した数値をファイルに保存するプログラムを作成する
#include <stdio.h> main() { int a; FILE *fp; if((fp = fopen("test.txt", "w")) == NULL){ printf("ファイルを作れませんでした"); exit(1); } printf("ファイルに保存する数字:"); scanf("%d", &a); fprintf(fp, "%d", a); fclose(fp); }
○ ファイルに保存された数値を読み込み,画面に表示するプログラムを作成する
#include <stdio.h> main() { int a; FILE *fp; if((fp = fopen("test.txt", "r")) == NULL){ printf("ファイルを開けませんでした"); exit(1); } fscanf(fp, "%d", &a); printf("%d", a); fclose(fp); }
複数のデータが書かれたファイルからデータを読み込むには,上記のプログラムの読み込みの部分をデータの数だけループさせればよい.ここで,問題となるのは,そのファイルにいくつのデータが保存されているのかわからない所である.そこで,ファイルの最初の行にデータの数が記入されているとすると,ファイルのデータを読み込むプログラムはどうなるだろう.
1行目 | 10 | データの数 |
2行目 | 1 | ここからデータ |
… | ||
11行目 | 20 | ここまでデータ |
データをエディタで作成して,読み込んでみよう.
今週も,先週と同じ課題です.
○ 角度を0度から359度まで1度ずつ変えたとき,sin, cos, tan の各値をコンマ","で区切ってファイルに出力するプログラムを作ろう.
データファイルができたら,エクセルに読み込んでみよう.