C ++でファイルIOを実行するには、ofstream、ifstream、およびfstreamクラスを使用します。
- ofstream:ファイルに書き込むストリームクラス
- ifstream:ファイルから読み取るストリームクラス
- fstream:ファイルからの読み取りとファイルへの書き込みの両方へのストリームクラス
ファイルをストリームオブジェクトに関連付けるプロセスは、「ファイルを開く」と呼ばれます。ファイルを開くときに、ファイルを開くモードを指定できます。私のクエリはios::outとios:inモードに関連しています。
ofstreamオブジェクトを作成してios::inモードでファイルを開くと、ファイルに書き込むことができますが、それがすでに作成されている場合に限ります(ios::outモードファイルがまだ存在しない場合は作成されます)。
しかし、ifstreamオブジェクトを作成してios::outモードでファイルを開くと、ファイルから読み取ることができます。
私の質問は、ストリームのタイプ( / )自体がどのタイプの操作(入力/出力)が実行されているかを指定するときに、これらのモード( ios::in/ ios::out)が言語によって提供されるのはなぜですか?ifstreamofstream
また、このあいまいな使用法(ofstreamwithios::inおよびifstreamwith ios::out)が、ある場合には機能し、別の場合には失敗するのはなぜですか(ファイルがまだ存在しない場合のみ)。