0

我如何将像 0x0000 这样的字符串转换为整数???此代码不起作用(Func atof 始终返回 0)。

String  str = "0xffff";
(unsigned int)atof(str);
4

2 回答 2

4

除了 C++ 之外std::stoi,您还可以使用适用于 C 和 C++ 的strtol(或strtoul无符号的):

int i = strtol(str, NULL, 0);

最后一个参数 0 表示自动选择基数为 8、10 或 16,具体取决于字符串的外观。对于0x前缀,将使用基数 16。对于0前缀,将使用基数 8。对于其他小数,尝试以 10 为底。

于 2013-05-16T06:44:46.683 回答
3

假设Stringstd::string,您可以使用std::stoi

std::string str("0xffff", 0, 0);
int i = std::stoi(str);
于 2013-05-16T06:41:37.353 回答