【问题标题】:convert text hex to real hex representation C++将文本十六进制转换为实际十六进制表示 C++
【发布时间】:2012-02-24 17:11:38
【问题描述】:

我有以下文件格式 | 00 00 07 09 |例如在文本文件中 我需要一种解析它的方法,以便每次在“|”之间找到一个字符串将内部转换为真正的十六进制表示

例如 | 30 |会给我 0 如何在 C++ 中完成(该死的 C# 让你如此懒惰和转储)。

这是文件的常用格式

+++路径

|FF F4 FF FD 06|

/viewsource/template.html?

NAMENAME

|FF FF FF FF FF FF|

|13|

|05|

|00 00 00 08|

|00|

|0A|

|00 00|

c|82|Sc

=

获取

FTP|3A|/

|01 06 00 00 00|

HTTP/

提示

每一行都将保存在一个向量数组中 这将被传递给以下函数。

void WuManber::Initialize( const vector<const char *> &patterns, 
                  bool bCaseSensitive, bool bIncludeSpecialCharacters, bool       bIncludeExtendedAscii )

【问题讨论】:

  • 谁能给我提示,我将不胜感激

标签: c++ hex


【解决方案1】:

使用字符串流

#include <sstream>
using namespace std;

void foo()
{
    istringstream ss("30");
    int i;
    ss >> hex >> i;
}

【讨论】:

  • 此代码仅将“任何字符串 30 更改为十六进制”,我需要的是 | 之间的任何字符串|应该转换成它的等效字符,而不仅仅是“30”
  • @WilliBurkhardt:您没有使用stringstream 的输出部分。使用istringstream 可以提供更清晰的意图。只是认为它可能有助于 OP 拥有一个实际编译的代码示例。如果您不喜欢这些更改,可以回滚它们。
  • @sad:访问帖子的历史记录。在我编辑您的帖子以添加using namespace 并将stringstream 更改为istringstream 之前,该更改由izomorphius 执行。
猜你喜欢
  • 2017-07-31
  • 2013-07-20
  • 2012-06-17
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2012-01-09
  • 2011-07-28
  • 1970-01-01
相关资源
最近更新 更多