【知识---c++中seekg、tellg使用】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


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的简单使用方法介绍,不足之处,请大家斧正!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值