读取c ++中的最后一行

时间:2013-06-24 06:40:06

标签: c++ ifstream

由于某种原因,如果最后一行包含的字符少于缓冲区,我的程序不会打印文本文件的最后一行

#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;
}

1 个答案:

答案 0 :(得分:3)

您正在if(!read.eof())的条件下打印该行,但在使用getline()读取最后一行后,该条件将评估为false。