std::ifstream 移动到文件开头
时间: 2024-09-06 11:03:43 浏览: 50
在 C++ 中,如果你想要将 `std::ifstream` 对象移到文件的开头(即开始位置),你可以使用 `seekg()` 函数,并设置第一个参数为 `std::ios::beg`。这个标志告诉流对象从文件的起始位置开始定位。
以下是一个简单的示例:
```cpp
#include <iostream>
#include <fstream>
int main() {
std::ifstream inputFile("example.txt");
if (!inputFile) {
std::cerr << "Failed to open the file." << std::endl;
return 1;
}
// 移动到文件开头
inputFile.seekg(0, std::ios::beg); // 第一个参数是位置标记,这里是文件的开始
inputFile.clear(); // 清除错误状态,如果之前有错误发生
inputFile.exceptions(std::ifstream::badbit | std::ifstream::failbit); // 设置只捕获错误和失败位
// 现在可以正常读取文件内容了
int lineCount = 0;
std::string line;
while (std::getline(inputFile, line)) {
++lineCount;
std::cout << "Line " << lineCount << ": " << line << std::endl;
}
inputFile.close();
return 0;
}
```
当你需要再次从头开始读取文件时,可以先调用 `seekg()` 将位置指针置回文件开头。