向文本文件中写入16进制数据

#include<iostream>
#include<fstream>
using namespace std;
 
int main()

   

 char test[6]={0x12,0x25,0x12,0x7F,0x80,0x97};
 char buffer[10]={0};
 int i=20;
 ofstream file;;
 file.open("test.txt",ios_base::app);
 file.clear();
 file.eof();
 file.hex;
 for(int i=0;i<6;i++)
 {
  file.write("0x",2);
  unsigned char n=test[i];
  if((int)n>127)
  {
   sprintf(buffer,"%x",test[i]);
   file.write(&buffer[6],4);
  }
  else
  {
   sprintf(buffer,"%x",test[i]);
   file.write(buffer,4);
  }

  
  
 }
 
 file.close();

 

 }

将二进制文件转换为16进制表示并保存为文本文件,可以按照以下步骤操作: 1. 打开二进制文件:使用文件I/O库(例如C++的fstream),以二进制模式("rb")打开输入文件。 2. 读取二进制数据:按字节流读取文件,直到读取完整个文件。 3. 转换为十六进制:对于读取到的每一个字节,将其转换为对应的十六进制字符。在C++,你可以使用`std::hex`和`std::uppercase`格式设置来获得易于阅读的大十六进制字。 4. 编码并拼接:将每个十六进制字符加入到字符串,并保持每两个字节一组的顺序。 5. 写入文本文件:创建一个新文件,以文本模式("wt")打开,然后将十六进制字符串写入,每一行对应二进制文件的一个字节对。 6. 关闭文件:完成后记得关闭文件。 示例代码片段(C++): ```cpp #include <fstream> #include <sstream> std::string binaryToHex(const std::string &binary) { std::stringstream ss; ss << std::hex << std::uppercase; for (size_t i = 0; i < binary.size(); i += 2) { ss << static_cast<unsigned char>(binary[i]) << static_cast<unsigned char>(binary[i + 1]); } return ss.str(); } int main() { std::ifstream in("input.bin", std::ios::binary); if (!in) { // 处理文件打开失败 return -1; } std::string binaryContent((std::istreambuf_iterator<char>(in)), {}); in.close(); std::ofstream out("output.txt"); if (!out) { // 处理文件写入失败 return -1; } out << binaryToHex(binaryContent) << "\n"; out.close(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值