如何在C++11中将u32string
转换为int
?
此外,如果我有一个可用的起始和结束迭代器,应该使用什么方法来将字符串的一部分转换为int
?
我尝试过:
u32string test=U"14";
cout << atoi(test.c_str());
但是它会抛出异常:
candidate function not viable: no known conversion from 'const char32_t *' to 'const char *' for 1st argument
extern int atoi (__const char *__nptr)
codecvt
在clang和gcc中尚未实现...在这种情况下,我该如何解决这个问题? - Wojciech Danilostd::codecvt_utf8
是std::codecvt
的一个特化版本。 如果您没有std::codecvt_utf8
,则可以简单地执行例如typedef std::codecvt<char32_t, char, std::mbstate_t> utf8_codecvt_t;
- Some programmer dudecodecv
文件,因此甚至无法包含...所以用这种方式解决是不可能的,我错了吗? - Wojciech Danilo