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

- 上一篇:C++二进制文件读写(read和write)详解
- 下一篇:c语言编程数字矩形方阵