int a; double x;のように宣言すると、
単純型のデータ構造の場合、一度に確保できるメモリーの領域は1個なので、大量のデー タを扱うのは不向きである。そこで、大量のデータを扱うために、配列というデータ構造 が考えられた。
これは、同じ型のデータを任意の個数宣言し、配列名と自然数 5でアクセスすることができ、便利である。配 列を使うためには、
int b[10000]; double y[10000];のように宣言をする。こうすると、
配列型のデータを取り扱う場合、繰り返し文とともに使われることが多い。次の例のよう にである。
for(i=0; i<=9999;i++){ y[i]=3.1415*b[i] }
添え字が1つのものを一次元配列と言い、それ以上のものを多次元配列と言う。C言語では 多次元配列を使う場合、
int hoge_1[100], hoge_2[100][100], hoge_3[100][100][100]; double huga[10], huge[10][10], hugo[10][10][10];のように宣言を行う。これらも、配列名と複数の添え字で、そこにあるデータにアクセス する事ができる。3次元以上ももちろん可能である。
当面、変数(データ構造)の宣言は、main関数の最初に書くと憶えて欲しい。 main関数の途中では宣言しない。実際は、他の場所でも宣言できるのであるが、そ れはより進んだ場面で学習する。
#include <stdio.h> int main(void) { FILE *fp_write; fp_write = fopen("test_out.txt","w"); fprintf(fp_write,"%d", 2004); fclose(fp_write); return 0; }
簡単である。ファイルポインターの宣言とオープンとクローズはおまじないと思えば良い。 実際に、ファイルにデータを書き出す部分は、fprintf関数を使う。これは、ディス プレイに出力するprintf関数とほとんど同じである。
#include <stdio.h> int main(void) { FILE *fp_read; int a; fp_read = fopen("test_out.txt","r"); fscanf(fp_read,"%d", &a); fclose(fp_read); return 0; }
難しいことは何も無い。おまじなの部分は、データ出力と同じである。ファイルからデータを読み出 す部分は、fscanf関数を使う。これは、キーボードから読み込むscanf関数と ほとんど同じである。
if((fp_read = fopen("test_out.txt","r"))==NULL){ printf("ファイルが開けません\n"); return 1; }と書く。この例は、ファイル読み込みの場合であるが、書き込みの場合も同じようにエラー 処理を書く。これはファイル処理をする場合のオープンのパターンと憶えておいて欲しい。