在C++中将字符串转换为无符号长整型

3

将字符串转换为无符号长整型。

string str = "0x1232"

如何转换为无符号长整型。

这是我尝试过的方法。

unsigned long long ull;
ull = stoull(str, NULL, 0);

错误:

 error: identifier "stoull" is undefined
                        ull = stoull(str, NULL, 0);

你能给我一些提示吗?

1个回答

8

首先是 strtoull(注意其中的字母 r),其次,它是一个旧的 C 风格函数,不能直接处理 std::string。你需要传递给它 str.c_str() 或使用新的 std::stoull


谢谢。我尝试了以下代码: 错误:没有与参数列表匹配的“strtoull”函数实例 参数类型为:(std :: string,long,int) ull = strtoull(str,NULL,10);http://stackoverflow.com/a/1646085/2015933 - pistal
@pistal 请再仔细阅读我的答案,它也包含了那个问题的解决方案。 - Some programmer dude
我使用了strtoull,而不是stoull。我看不出有什么问题。 - pistal
那么,我应该使用str.c_str()吗?你能给我指一个例子或者提供一个吗? - pistal
2
@pistal 是的,没错。比如 ull = std::strtoull(str.c_str(), 0, 16); - Some programmer dude
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接