ハードディスクに保存しているデータの集まりの単位のことをファイル3と言う.これは0と1のビットの 集まりで,かなり複雑なことをしてハードディスクに書き込まれている.OS--linuxや Windows--がきちんと管理しているので,プログラマーは簡単に使えるようになっている.
ファイルは,図1にしめすような巻物と思ってほしい.この巻物は便 利で,消去することができ,幅や長さはプログラマーが自由に変えることができる.ここ では,この巻物にC言語の命令を使って,読んだり/書いたりする方法を学習する.
1 #include <stdio.h>
2
3 int main(void){
4 FILE *hoge;
5
6 hoge=fopen("hello.txt","w");
7
8 fprintf(hoge,"Hello World !!\n");
9
10 fclose(hoge);
11
12 return 0;
13 }
リスト1を実行すると,hello.txtというファイルができあがる.そ のファイルの中には,以下のような文字が書かれている.
Hello World !!
このプログラムの各行の内容は,次の通りである.文法の詳細については,後で説明する. ここでは,fprintf()でファイルに文字を書くことができることを理解せねばならない.
ファイルを識別するためのデータを入れる変数を準備する.
hello.txtというファイルを書き込み(write)モードで開いている.そして, ファイルの情報-- 正確には情報が書かれたアドレス--をポインターhoge に代入する.
ファイルにHello World !!と書く.書き込むべきファイルをhogeで示している.
使い終わったファイルを閉じる.
1 #include <stdio.h>
2
3 int main(void){
4 FILE *fuga;
5 char a[32], b[32], c[32];
6
7 fuga = fopen("hello.txt", "r");
8
9 fscanf(fuga, "%s%s%s", a, b, c);
10
11 fclose(fuga);
12
13 printf("%s %s %s\n", a, b, c);
14
15 return 0;
16 }
このプログラムを実行すると,hello.txtというファイルから文字を読み込み,ディ スプレイに,以下のように表示される.
Hello World !!
このプログラムの各行の内容は,次の通りである.ここでの文法の詳細についても後で説明する. ただ,fscanf()でファイルから文字を読み取ることができる--ことのみ理解してお けばよい.
先ほど同様,ファイルを識別するためのデータを入れる変数である.
hello.txtというファイルを読み込み(read)モード開いている.戻り値であ るファイルの情報は,ポインターhogeに代入している.
ファイルからデータ--文字列--を読み込んでいる.空白は文字列の区切りを表 すので,文字列を入れる3つの配列を用意している.配列aに"Hello",配列 bに"World",配列cに"!!"が格納される.
使い終わったファイルを閉じている.