>` 演算子がよく使われる? " />
ifstream の eof() 関数を理解する
C では、 fstream クラスはファイルの入出力を処理するメソッドを提供します。 eof() 関数はその 1 つですこのメソッドは、ファイルの終わり (EOF) が終了したかどうかを示すブール値を返します。
eof() の動作
eof() 関数は、ファイル ストリームが読み取ろうとするときに、EOF フラグと呼ばれるフラグを設定します。ファイルの最後のバイトを超えると、フラグは次の読み取り操作まで設定されません。
を使用します。ループ内の eof()
指定したコード スニペットは、EOF に達するまでファイルから文字を読み取ろうとします。
while( !inf.eof() ) { std::cout << inf.get() << "\n"; }
この場合、「abc」テキスト ファイルには 4 文字 (改行文字を含む) が含まれています。最初の 3 文字を読み取った後は、ファイル ストリームがテキスト ファイルの末尾を超えて読み取ろうとしないため、eof() フラグは設定されません。ただし、改行文字を読み取ろうとすると、ファイルの終わりに達したことを示す EOF フラグが設定されます。
余分な文字の読み取り
eof()を使用すると、コードが余分な文字を読み取り、「-1」を表示すると述べました。これは、get() がファイルの終わりを示す値を返すために発生します。この場合、-1 を返し、読み取る文字がもうないことを示します。
>> を使用した代替アプローチOperator コードの 2 番目の部分では、>> を使用します。ファイルから文字を読み取る演算子: この場合、>>演算子は 2 つのアクションを実行します: ループは >> が続く限り継続します。操作は成功し、ファイルの終わりに達するまで実行されます。ファイルの終わりに達すると、>>演算子は false を返し、ループは終了します。 結論 eof() の動作は、特にファイルのコンテキストでは混乱を招く可能性があります。ファイル ストリームがファイルの終わりを超えて読み取ろうとする場合にのみ EOF フラグが設定されることを理解することが重要です。 eof() を使用する代わりに、>> を使用することをお勧めします。 EOF 条件を自動的に処理するため、ファイルから文字を読み取るための演算子。 以上がC の `ifstream::eof()` 関数はどのように動作し、`>>` 演算子の使用がよく選ばれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。char c;
while( inf >> c ) {
std::cout << c << "\n";
}