C ++数据类型转换

时间:2015-09-15 07:31:54

标签: c++ string type-conversion

正在读取文本文件并从文件中提取单词并将它们放入const char*数组中。但是,我的要求是将这些const char*变量转换为各种数据类型,如DWORD,LPBYTE, WORD,ULONG等。

暂时我的转换实现如下:

DWORD GetDword(const char* msg)
 {
   if (int strcmp(msg, "MyRequiredData") > 0)
        {
           return MyRequiredData ;
        }
 }

假设" msg"是来自数组的一个字符串数据。这样我就可以通过这种方法获得DWORD类型所需的数据。其他类型的实现也是如此。
我担心这里几乎硬编码数据。有没有更好的方法呢?我可以将我的字符串转换为我想要的数据类型吗?

2 个答案:

答案 0 :(得分:2)

琐碎案例(转换器)可以使用数字字符串转换部分herestrtok或简单地boost::lexical_cast

完成

高级(解析) - 使用Lex/Yacc or Flex/BisonANTLRBoost.Spirit

高级(解组/解码) - 包括ProtobufSBEBlinkXDRASN.1等等。

答案 1 :(得分:-2)

您是否尝试过以下形式的类型转换?

DWORD GetDword(const char* msg)
{
   return (DWORD) msg;
}

虽然您必须先确定msg的内容是否可以转换为DWORD才能获得正确的值。