【知识---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. 知识---c++seekg、tellg使用

    2024-01-18 14:48:05       33 阅读
  2. 知识---c++assert的使用及方法】

    2024-01-18 14:48:05       35 阅读
  3. QT C++ 常见知识

    2024-01-18 14:48:05       24 阅读
  4. C++使用汇编

    2024-01-18 14:48:05       31 阅读
  5. effective c++ 和 more effective c++知识

    2024-01-18 14:48:05       11 阅读
  6. c++使用互斥量

    2024-01-18 14:48:05       46 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-18 14:48:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-18 14:48:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-18 14:48:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-18 14:48:05       20 阅读

热门阅读

  1. 【算法基础 & 数学】欧拉函数

    2024-01-18 14:48:05       29 阅读
  2. c ffmpeg 学习

    2024-01-18 14:48:05       39 阅读
  3. Rust类型之数组和动态数组

    2024-01-18 14:48:05       30 阅读
  4. PyTorch 稀疏函数解析:embedding 、one_hot详解

    2024-01-18 14:48:05       36 阅读
  5. C++模版进阶

    2024-01-18 14:48:05       38 阅读
  6. 使用C++播放声音的完整指南

    2024-01-18 14:48:05       32 阅读
  7. 如何判断当前是安卓/IOS/H5/Web使用环境

    2024-01-18 14:48:05       29 阅读
  8. 达梦数据库 忘记 SYSDBA 密码 处理方法

    2024-01-18 14:48:05       32 阅读