C++读取BIN文件的一些问题

本文探讨了C++读取BIN文件时遇到的问题,包括BIN文件的性质、C++的读取方式以及类型转换的注意事项。在处理二进制文件时,必须使用相应的二进制读取函数,如`ifstream::read()`,并确保类型转换的正确性,避免数据丢失或错误。
摘要由CSDN通过智能技术生成

程序要求读取一个ARM的BIN文件,需要获取每一个字节,写了一个函数测试一下:

文件:

 

由于不熟悉,弄出了很多问题。相关问题如下:

 

1 BIN文件

(大部分见https://www.cnblogs.com/pengwangguoyh/articles/3223072.html)

BIN文件不以ASCII码存放数据,它将内存中数据存储形式不加转换地传送到磁盘文件,因此它又称为内存数据的映像文件。文件中的信息不是字符数据,而是字节中的二进制形式的信息,因此它又称为字节文件。

文本工具打开一个文件,如记事本,首先读取文件物理上对应的二进制比特流,再按用户选择的解码方式来解释这个流,再显示解释结果。如果记事本无论打开什么文件都按某种特定编码(如ASCII码),就可能出现乱码。

如上面的test.bin文件,用EmEditor直接打开,(其编码:GB2312),会提示某些字符无法用指定的编码进行转换。想要像上面这张图方便地查看16进制,就要选择以二进制方式打开(16进制试图),如果选择ASCII视图,也是乱码。

不管你怎么样,存储的都还

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值