C++用ifstream和seekg读取txt文件,请给出示例
时间: 2024-02-09 20:11:15 浏览: 67
好的,以下是一个使用 `ifstream` 和 `seekg` 读取 `txt` 文件的示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream file("example.txt", std::ios::binary);
if (!file) {
std::cerr << "Failed to open file." << std::endl;
return 1;
}
// 获取文件长度
file.seekg(0, std::ios::end);
std::streampos length = file.tellg();
file.seekg(0, std::ios::beg);
// 读取文件内容
char* buffer = new char[length];
file.read(buffer, length);
std::string content(buffer, length);
std::cout << content << std::endl;
delete[] buffer;
file.close();
return 0;
}
```
这个示例程序打开了名为 `example.txt` 的文件,使用 `seekg` 函数获取了文件的长度,然后使用 `read` 函数读取了整个文件的内容到一个缓冲区中,最后将缓冲区中的内容转换成了一个 `std::string` 对象并打印输出。
需要注意的是,这里使用了 `std::ios::binary` 标记来打开文件,以保证在读取二进制文件时正确处理换行符等字符。此外,还需要注意在使用完缓冲区之后手动释放内存空间,避免内存泄漏。
阅读全文