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