【C++】 bin文件转换成txt文件

您所在的位置:网站首页 怎么把bin文件转换成文本文档 【C++】 bin文件转换成txt文件

【C++】 bin文件转换成txt文件

2024-07-09 17:34| 来源: 网络整理| 查看: 265

因学习需要,现要将二进制bin文件转化成十六进制格式并保存于txt文件中。

使用C语言编写该程序较为简单,定义FILE指针, 在合适的地方运用getc(),fprintf()函数即可。这里主要讲使用C++文件流方法。

一直以来对C++文件和流都不是太熟,遇到文件读写使用的都是C的方式。因此这次使用C++的方式编写该程序,记录编写过程中的一些细节和问题,防止今后再出错。

一、 什么是bin文件?

文件的后缀其实意义不大,它存在的意义是告诉用户或者程序该文件是什么格式,但文件内部是否按该格式存储并不一定。举个例子,有个.mp3音频文件,该后缀是为了告诉你,这是一个音频文件,你可以用通常的音乐软件打开它。我完全可以把该后缀更改为.docx文件,那这个文件变成文档了吗?并没有,只是电脑识别出,这个文件的后缀是.docx,你可以尝试使用word打开它,但是否能正确打开并读取文件中的信息,不能保证。事实上,这个.docx文件,你在点击右键,打开方式中仍然选择音乐播放软件,依旧可以播放音乐。当然,有些软件在打开文件之前就会检查后缀,不符合的不再继续进行的除外。我甚至可以将这个文件的后缀更改为.SeaOtter,并设置默认打开方式为网易云音乐,依旧能正确打开。所以,需要区分文件以什么格式存储,这是同后缀无关的。

那么什么是bin文件呢?通过上述分析,这里的bin文件我指的就不仅仅是.bin后缀的文件了,而是以二进制格式存储的文件。

二、如何打开bin文件?

打开bin文件的方式有很多,可以下载binary view软件,或者在notepad++中下载hex-editor插件。以后者为例,打开一个二进制文件后的截图如下,这里转换成了十六进制: 

图1 二进制文件

由于需要的也是将二进制文件转换成十六进制存储于.txt中,因此通过notepad++的hex-editor插件可以直接预览到正确转换结果。

三、bin2txt.cpp

写该程序需要学习文件流是如何读写二进制文件。通过网上查阅资料可以了解到,C++文件流可以读写文本文件和二进制文件。

对于读写文本文件,通常使用析取器(>>)和插入器()和插入器()会出现问题(下面会详述)。

代码如下:

#include #include #include using namespace std; int main() { ifstream infile; infile.open("0927.bin", ios_base::binary); //attention1 ofstream outfile; outfile.open("output.txt", ios_base::binary); char readByte; unsigned char readByte2; int cnt = 0; outfile


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3