ハードディスクに保存しているデータの集まりの単位のことをファイル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に"!!"が格納される.
使い終わったファイルを閉じている.