【问题标题】:working to Hex data using C++使用 C++ 处理十六进制数据
【发布时间】:2011-04-26 13:11:03
【问题描述】:

需要帮助我使用 c++ 处理十六进制字符串

  1. 如何逐行打开文件二进制数据十六进制c++
  2. 如何使用 0x3D c++ 等分隔符分割行
  3. 如何在矢量图中存储除搜索创建的线以外的所有线。

例如。 语法文件二进制

32 32 32 32 32 32 30 3D 32 30 31 31 31 30 31 30 

32 32 32 32 32 32 31 3D 32 30 31 31 31 30 31 30 

32 32 32 32 32 32 32 3D 32 30 31 31 31 30 31 30

32 32 32 32 32 32 33 3D 32 30 31 31 31 30 31 30 

分隔符 = 3D

搜索 = 0x32 0x32 0x32 0x32 0x32 0x32 0x32

最后一步如何输出从搜索中创建的0x32 0x30 0x31 0x31 0x31 0x30 0x31 0x30 存储字符*

请帮帮我

【问题讨论】:

  • 如果您的二进制文件有 \n 字符,您将其解释为行尾,则该文件不是二进制文件,而是文本文件。
  • 嗨 JoshD,包含类似上述十六进制数据的文本文件
  • 文本之间也不包含空格
  • 文件是否包含行尾字符?也许\n?

标签: c++ hex hex-editors


【解决方案1】:

你说的不是很清楚。

我假设您有一个包含这些字符的文件(顺便说一句,TEXT 文件,而不是二进制文件),并且您想逐行读取它,然后将每一行拆分为“3D”,然后将每个部分存储在一个字符中*.

首先,阅读有关打开文件进行阅读以及如何逐行阅读的内容,您将在任何教程中找到它。

其次,使用 strtoken() 通过“3D”“分割”行。请记住,此时它只是文本,忘记十六进制。

之后你可以使用scanf()将每个部分读取为十六进制并将它们存储到char*中,然后你可以比较它并存储你想要的。

如果文件是二进制文件,则需要查找getc() 函数或gets(),但思路是一样的。第二步,如果需要按0x3d hex值分割,就做吧。

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2011-06-01
    • 2011-12-09
    • 2013-06-10
    相关资源
    最近更新 更多