2 ファイル処理の概要

2.1 ファイル処理とは

本講義のメインテーマである数値計算では,大量の数値を扱うことが多い.いちいち紙に 計算結果を書き写すことは不可能なので,普通,ハードディスクに保存する.数値計算に 限らず,実験で取得したデータもハードディスクに保存することが多い.なにせ,データ の取得にコンピューターを利用するのは普通のことである.そのデータを処理して,意味 のある量に加工するのである.数値計算や実験など,理科系の仕事に限らず,現代社会で の大量の情報は全てハードディスクに保存される--と言っても過言ではない.

このようなことから,ファイル処理--ここではハードディスクへのデータの入出力--は, コンピューターを上手に使う必須のテクニックである.ファイル処理の技術を習得し,コ ンピューターを自在に活用して欲しい.これができるようになると,コンピューターの応 用がかなり拡がる.卒研などで,大変重宝するだろう.

2.2 ファイル処理の体験

2.2.1 ファイル出力

ごちゃごちゃと説明するよりも,実際にファイル処理のプログラムを示した方がわかりや すいだろう.いままで,ディスプレイに出力していた"Hello World !!"をファイルに書き 出す.リスト1のプログラムでそれが実現できる.ディスプレイに表示す るprintf()という関数の代わりに,fprintf()関数を使うのである. fprintf()関数がファイルに文字を書き出すのである.前後に少し,おまけがついて いるが,ほとんど同じである.
   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 }
\fbox{実行結果}

リスト1を実行すると,hello.txtというファイルができあがる.そ のファイルの中には,以下のような文字が書かれている.

Hello World !!

このプログラムの各行の内容は,次の通りである.文法の詳細については,後で説明する. ここでは,fprintf()でファイルに文字を書くことができることを理解せねばならない.

2.2.2 ファイル入力

ファイルに文字を書く方法は分かった.次に,ファイルから文字を読み込んでみよう.先 ほど作成したファイル(hello.txt)の内容を読み,それを画面に出力する.リスト 2が,ファイルを読み込んで表示するプログラムである.
   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 }
\fbox{実行結果}

このプログラムを実行すると,hello.txtというファイルから文字を読み込み,ディ スプレイに,以下のように表示される.

Hello World !!

このプログラムの各行の内容は,次の通りである.ここでの文法の詳細についても後で説明する. ただ,fscanf()でファイルから文字を読み取ることができることを理解せねばならない.




ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年6月27日


no counter