2

考虑以下示例:

#include <iostream>
#include <clocale>
#include <cstdlib>
#include <string>
int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    std::string s = "03A0";
    wchar_t wstr = std::strtoul(s.c_str(), nullptr, 16);
    std::wcout << wstr;
}

ΠColiru上输出。

问题

std::strtoul, 来自<cstdlib>. 我完全可以使用它,但我想知道上面的示例是否可以仅使用 C++ 标准库(可能是字符串流)?

另请注意,表示十六进制的字符串上没有前缀0x

4

1 回答 1

7

当然,std::stoul

wchar_t wstr = std::stoul(s, nullptr, 16);

主要区别在于它可以为错误引发异常。

于 2013-06-27T04:43:45.343 回答