先週に引き続き,ファイル操作の練習をしましょう.
キーボードからの入力(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 の各値をコンマ","で区切ってファイルに出力するプログラムを作ろう.
データファイルができたら,エクセルに読み込んでみよう.