2

ファイルから最後のエントリを読み取った後、またはそれを超えて読み取ろうとした後、some_file.good()戻りますか?falseつまり、私は書くべきですか

while (input.good())
{
    getline(input, line);
    // ...process
}

また

getline(input, line);
while (input.good())
{
    // ...process
    getline(input, line);
}

4

2 に答える 2

9

それを超えて読み込もうとしています...

あなたは試すことができます:

while(getline(input, line))
{
// do stuff with line
}

追加する必要がありますが、そのストリームはoperator!、通常行うフラグをチェックするを実装します。fromからの戻りgetlineは入力ストリームですが、演算子のため、フラグがチェックされます。

于 2010-12-10T12:44:30.110 に答える
0

すでに提案したように、行がなくなるとgetlineはゼロを返します。また、eof()EOFフラグが設定されている場合(つまり、ストリームでファイルの終わりに達した場合)、メソッドはtrueを返します。

if(input.eof())
{
// end of file
}
于 2010-12-10T12:50:24.410 に答える