細かい文法の話をする前に、実際のファイル出力の例を示す。以下のプログラ
ムがファイル出力の例である。このプログラムを実行すると、"output.txt"と
いうテキストファイルができる。このテキストファイルは、図
6のようになっている。
このプログラムの中で、ファイル処理に関する部分は、次の通りである。
- 「FILE *fp」でファイルポインターfpを宣言している。ファイル
ポインターとはファイルをの情報を入れておく変数だと思ってほしい
5。
- 「fp = fopen("output.txt","w")」で"output.txt"と言うファイルを、
書き込みモード("w")で開いている。そのファイルの情報は、fpに
代入される。
- 「fprintf(fp,"%3d
t", 10*i+j)」で、ファイルに書き込んでいる。ファ
イルポインターを示す引数以外は、printf文と同じである。
- 「fclose(fp)」でファイルを閉じている。
実際のファイルの書き込みは、
printf文とほとんど同じなので、簡単である。ただ、前後にファイルのオープンとクローズがあるだけである。
#include <stdio.h>
int main(void)
{
int i, j;
FILE *fp;
fp = fopen("output.txt","w");
for(i=0;i<=99;i++){
for(j=0;j<=9;j++){
fprintf(fp,"%3d\t", 10*i+j);
}
fprintf(fp,"\n");
}
fclose(fp);
return 0;
}
ファイル入力は、次のように書く。このプログラムを実行すると、先ほどファ
イル出力で作成されたファイルのデータを読み込み、配列
dataに数値が
代入される。
このプログラムの中で、ファイル処理に関する部分は、次の通りである。
- 「FILE *fp」でファイルポインターfpを宣言している。
- 「fp = fopen("output.txt","r")」で"output.txt"と言うファイルを、
読み込みモード("r")で開いている。そのファイルの情報は、fpに
代入される。
- 「fscanf(fp,"%d", &data[i][j])」で、配列に代入している。ファ
イルポインターを示す引数以外は、scanf文と同じである。
- 「fclose(fp)」でファイルを閉じている。
実際のファイルの読み込みは、
scanf文とほとんど同じなので、ファイル出力同様に
簡単である。
#include <stdio.h>
int main(void)
{
int i, j;
int data[100][10];
FILE *fp;
fp = fopen("output.txt","r");
for(i=0;i<=99;i++){
for(j=0;j<=9;j++){
fscanf(fp,"%d",&data[i][j]);
}
}
fclose(fp);
return 0;
}
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年11月9日