c++文件读取最后一行读取两次的问题
作者:野牛程序员:2023-11-15 22:59:35 C++阅读 3059
可能是因为在读取最后一行后,文件指针已经移动到文件的末尾,再次读取会导致读取到相同的内容。为了解决这个问题,可以在第一次读取最后一行后,将文件指针重新定位到文件的开头,然后再进行读取。
以下是一个可能的解决方法:
#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语言编程数字矩形方阵
