fstream 変数には何が含まれていますか? A は fstream に関する多くのチュートリアルを見つけることができますが、実際に fstream ファイルが何であるかを示すオナはありません。はじめに宣言。ありがとう。
3 に答える
fstream オブジェクトは、入力 (つまり、ファイルの内容の読み取り) および出力 (つまり、ファイルへの書き込み) のためにファイルを開くために使用されます。
入力と出力を 2 つの異なるオブジェクトに分離する ifstream オブジェクトと ofstream オブジェクトもあります。これは、たとえば、フォーマットされていないファイルを読み取り、フォーマットされた出力を別のファイルに書きたい場合に便利です。
fstream クラスは、ファイルの入出力を処理するオブジェクトです。これは、入力と出力の両方に使用できるという点で、ifstream オブジェクトと ostream オブジェクトの両方を 1 つにまとめたものとほとんど同じです。この小さなデモンストレーションでは、ファイルを作成してデータを書き込みます。
#include <fstream>
using namespace std;
int main()
{
fstream myFile;
myFile.open("data.txt");
myFile << "This will appear in the file.";
myFile.close();
}
fstream オブジェクトの優れた点は、ファイルのバイナリ メモリ イメージの読み取りと書き込み (ファイルのデータを編集から保護するため) に使用できることと、さまざまなフラグを設定して、fstream が入出力を処理する方法を制御できることです。例えば:
この fstream は、fout.txt のデータをクリアしてバイナリで書き込む出力ストリームです。
fstream foutOne("fout.txt", ios::binary | ios::out | ios::trunc)
この fstream は、fout.txt のデータを消去せず、代わりに末尾に追加し、バイナリで書き込む出力ストリームです。
fstream foutTwo("fout.txt", ios::binary | ios::out | ios::app)
私の記憶が正しければ、foutTwo は fout.txt が存在しない場合にクラッシュしますが、foutOne は存在しません。次のように、ファイルを開いた直後に fstream が正しくロードされたかどうかを確認できます (常に確認する必要があります)。
if(!foutTwo)
{ cout << "File open error!\n"; exit(EXIT_FAILURE); }
std::fstream は、ファイルへの読み取り/書き込みアクセスをカプセル化するクラスです。これは iostream から継承されているため、すべての C++ ストリームによって提供される通常のメソッドをすべて備えており、ファイルの読み取りと書き込みを行います。詳細については、そのドキュメントと C++ マニュアルの IO に関する章を参照してください。