正在读取文本文件并从文件中提取单词并将它们放入const char*
数组中。但是,我的要求是将这些const char*
变量转换为各种数据类型,如DWORD,LPBYTE, WORD,ULONG
等。
暂时我的转换实现如下:
DWORD GetDword(const char* msg)
{
if (int strcmp(msg, "MyRequiredData") > 0)
{
return MyRequiredData ;
}
}
假设" msg"是来自数组的一个字符串数据。这样我就可以通过这种方法获得DWORD
类型所需的数据。其他类型的实现也是如此。
我担心这里几乎硬编码数据。有没有更好的方法呢?我可以将我的字符串转换为我想要的数据类型吗?
答案 0 :(得分:2)
琐碎案例(转换器)可以使用数字字符串转换部分here,strtok或简单地boost::lexical_cast
完成高级(解析) - 使用Lex/Yacc or Flex/Bison,ANTLR,Boost.Spirit等
答案 1 :(得分:-2)
您是否尝试过以下形式的类型转换?
DWORD GetDword(const char* msg)
{
return (DWORD) msg;
}
虽然您必须先确定msg
的内容是否可以转换为DWORD才能获得正确的值。