c++ - 获取、修改二进制文件的信息?

标签 c++ database file-io fstream

我有一个二进制文件,其大小为“x+a+y”字节。我有一些问题;

  • 如果不详尽读取 x 个字节,如何跳转到 a 个字节的起点?
  • 如果不将所有信息驻留在一行中,然后进行必要的修改并最终将新信息写入同一行,我如何才能仅更改起始地址显示为 P 的数据的“一个字节”?
  • 我可以将指针指向“一个字节”的起点,即 P 吗?

关于pile文件中数据如何存储的问题;

  • 为什么存储在pile 文件中的所有原始数据类型(如int)最好是无符号的?
  • 为什么总是选择 offset 作为 unsigned int? eX: x,a,y 为已知值

    ___________________________________________________________
    |                             |     |                     |
    |                             |     |                     |
    |----------> x <--------------|> a <|-------> y <---------|
                                  ^
                                  ^
                                  P
    

Linux 平台

注意:如果我做重复的问题,请通知我,以便我可以删除这个问题。 当你命令smth时请放心

最佳答案

ifstream 中有一个名为 seekg 的方法,可将读取位置移动到文件中的特定位置。参见 http://en.cppreference.com/w/cpp/io/basic_istream/seekg .

关于c++ - 获取、修改二进制文件的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007320/

相关文章:

c++ - 通过 libpqxx 将数据插入 PostgreSQL 时出现问题

c# - 使 Directory.GetFiles() 忽略 protected 文件夹

c++ - 使用整数指针操作时如何确定整数数组的结尾?

c++ - 对 unique_ptr 列表进行排序

android - 更新在 SQLite 数据库中不起作用

mysql - 使用聚合进行 Sql 查询

java - 如何使用java在linux/ubuntu上获取usb设备的绝对路径

php - 使用 http ://location broken 加载数据本地 infile

c# - 有人可以(很好地)解释为什么 OOP 方法重载是一件好事吗?

c++ - 板球记分牌上的程序