当前位置:首页 C++ > 正文

c++文件读取最后一行读取两次的问题

作者:野牛程序员:2023-11-15 22:59:35 C++阅读 2823

可能是因为在读取最后一行后,文件指针已经移动到文件的末尾,再次读取会导致读取到相同的内容。为了解决这个问题,可以在第一次读取最后一行后,将文件指针重新定位到文件的开头,然后再进行读取。

以下是一个可能的解决方法:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream file("example.txt");

    if (file.is_open()) {
        std::string line;
        std::string lastLine;

        // 读取文件的每一行
        while (std::getline(file, line)) {
            lastLine = line;
        }

        // 将文件指针重新定位到文件开头
        file.clear();
        file.seekg(0, std::ios::beg);

        // 再次读取最后一行
        std::cout << "最后一行内容: " << lastLine << std::endl;

        file.close();
    } else {
        std::cout << "无法打开文件" << std::endl;
    }

    return 0;
}

这个例子中,首先通过循环读取文件的每一行,将最后一行保存在变量 lastLine 中。接着,使用 clear() 函数清除文件状态标志,然后使用 seekg() 函数将文件指针重新设置到文件的开头。最后,再次输出最后一行的内容,这次不会导致重复读取。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击