将字节的字符串转换为unsigned int

时间:2015-11-06 14:53:54

标签: c++

对于我正在尝试编写的应用程序,我需要能够在接口中编写GLEnable(GL_REPEAT)(这样才能工作)。 一旦用户这样做,系统应使用正确的参数调用该函数。

到目前为止,我已经调用了正确的函数

((void (*)(unsigned int)) FunctionName)(Parameter);,但参数为0。

为了获得正确的参数,我将glew.h文件作为文本文件读取,并将其解析为std :: map。但是,我坚持如何将0x2901(和其余的)从字符串转换为unsigned int。如果有人碰巧知道如何做到这一点,将非常感谢帮助:)

提前致谢,

乔伊

2 个答案:

答案 0 :(得分:0)

也许您可以使用hashCode()

std::stringstream

输出:

  

解析的价值:10497
  应该是10497

Live Demo

答案 1 :(得分:0)

您也可以尝试C风格(sscanf功能),如下所示:

    std::string hex = "0x2901";
    unsigned int x;
    sscanf(hex.c_str(), "%x", &x);
    printf("%#X = %u\n", x, x);

sscanf允许检查以下样式:

    std::string hex = "0x2901";
    unsigned int x = 0;
    if ( sscanf(hex.c_str(), "%x", &x) == 1) 
    {
        printf("%#X = %u\n", x, x);
    }
    else
    {
        printf("Incorrect string value\n");
    }