C++ 如何使value=strtol(number.c_str(),NULL,number.size());工作

C++ 如何使value=strtol(number.c_str(),NULL,number.size());工作,c++,iostream,C++,Iostream,数字是一个字符串==0x1388,在dec中为5000。我不确定如何将这个十六进制字符串转换为int值==0x1388;有什么帮助吗?先谢谢你 value = strtol (number.c_str(),NULL, number.size()); 第三个参数是要转换的数字的基数。在您的例子中,数字是以16进制为基数的,因此您应该将16作为第三个参数传递。您还可以传递0,这将让函数根据前缀0x确定基数。修复第三个参数 value = strtol (number.c_str(),NUL

数字是一个字符串==0x1388,在dec中为5000。我不确定如何将这个十六进制字符串转换为int值==0x1388;有什么帮助吗?先谢谢你

    value = strtol (number.c_str(),NULL, number.size());

第三个参数是要转换的数字的基数。在您的例子中,数字是以16进制为基数的,因此您应该将16作为第三个参数传递。您还可以传递0,这将让函数根据前缀0x确定基数。

修复第三个参数

value = strtol (number.c_str(),NULL, 16);
                                      ^^ Base of hexadecimal number

这对Octal和Dec也适用吗?@user2904033是的,为什么不?