0

何らかの理由で、最後の行に含まれる文字がバッファーよりも少ない場合、私のプログラムはテキストファイルの最後の行を出力しません

#include <iostream>
#include <iomanip>
#include <fstream>

int main()
{
    std::ifstream read("test.txt");
    char buffer[12];

    while(!read.eof())
    {
        read.getline(buffer,11);
        if(!read.eof())
            std::cout<<buffer<<'\n';
        read.clear();

    }
    read.close();

    return 0;
}
4

1 に答える 1

3

という条件で行を出力してif(!read.eof())いますが、最後の行が で読み取られた後、その条件は false と評価されますgetline()

于 2013-06-24T06:44:50.670 に答える