提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
seekg使用方法
seekg 是 "seek get" 的缩写,它允许你在文件中移动输入流的位置
seekg 是 C++ 中用于设置文件输入流位置的成员函数,通常用于定位文件中的读取位置。它的语法如下:
streampos seekg (streamoff off, ios_base::seekdir way);
off:偏移量,指定相对于 way 参数所指定位置的偏移量。可以为正数(向前移动)或负数(向后移动)。
way:寻找方向,指定偏移量是相对于文件开头、当前位置还是文件末尾。
ios_base::beg(文件开头)、ios_base::cur(当前位置)、或者 ios_base::end(文件末尾)
案例
file.seekg(0, std::ios::beg); // 将输入流位置设置到文件开头
file.seekg(10, std::ios::cur); // 将输入流位置向前移动10个字节
file.seekg(-5, std::ios::end); // 将输入流位置设置到文件末尾的前5个字节
tellg使用方法
tellg() 是 C++ 中用于获取文件输入流位置的成员函数。它返回一个 streampos 类型的值,表示当前输入流的位置。
使用 tellg() 可以获取当前文件输入流的位置,通常在与 seekg() 一起使用,以在文件中进行定位。
file.tellg() 被用于获取文件输入流的当前位置,即文件的大小。具体地说,先通过 file.seekg(0, file.end); 将文件输入流的位置设置到文件末尾,然后使用 file.tellg() 获取当前位置,即文件的大小。这个值被用于后续的操作,例如动态分配足够的内存来存储整个文件内容。
案例
#include <iostream>
#include <fstream>
int main() {
std::ifstream file("example.txt", std::ios::binary);
if (file.is_open()) {
file.seekg(0, std::ios::end); // 将输入流位置设置到文件末尾
std::streampos fileSize = file.tellg(); // 获取当前位置,即文件的大小
file.seekg(0, std::ios::beg); // 将输入流位置设置回文件开头
std::cout << "File size: " << fileSize << " bytes\n";
// 其他文件操作...
} else {
std::cerr << "Could not open file.\n";
}
return 0;
}
总结
以上就是关于seekg和tellg的简单使用方法介绍,不足之处,请大家斧正!!!