ファイルからの入力やファイルへの出力へはそれぞれ「ifstream」クラス、「ofstream」クラス
を使用します。
oftreamクラスはostreamの子クラスで、ifstreamクラスはistreamクラスの子クラスです。
子クラスについては後述しますが、ここではofstreamはostream
つまりcoutと同じようにして使用することができ、ifstreamクラスはistreamつまりcinと
同じように使うことができると覚えておいてください。
ただし、coutやcinのように最初からインスタンスが存在するわけではありません。
つまり自分でファイル名を指定して、インスタンス(オブジェクト)を作らなければいけません。
C言語ではファイルを使用する場合、fopen関数を用いてファイルをオープンしました。
ifstreamやofstreamのインスタンスを作るとは、fopen関数を用いてオープンするのと
同じ操作をすると言うことです。
なお、ファイルストリームを使用するためには「fstream.h」をインクルードする必要が
あります。
例として、input.txtをoutput.txtにコピーするプログラムを示します。
アンダーラインの部分が、ifstream、ofstreamクラスのインスタンスを作っている部分です。
つまりファイルをオープンしている部分です。
#include <iostream>
#include <fstream.h>
void main(){
char buf[512];
// ifstreamのインスタンスを作る
// C言語のfopenと同じ
ifstream ifs( "input.txt" ) ;
// ofstreamのインスタンスを作る
// C言語のfopenと同じ
ofstream ofs( "output.txt" ) ;
// ifstreamのインスタンス(ifs)から1行読み込みbufに入れる。
while( ifs.getline( buf, sizeof(buf) ))
// ofstreamのインスタンス(ofs)を利用して読み込んだ内容を書き込む
ofs << buf << endl;
}
|
|