我有一个返回xml元素内部文本的函数。但是,它返回const wchar_t*
。我希望将此值作为整数返回(在其他一些情况下为浮点数)。这样做的最佳方法是什么?
答案 0 :(得分:7)
C ++的方式是:
wchar_t* foo = L"123";
std::wistringstream s(foo);
int i = 0;
s >> i;
使用Boost,你可以这样做:
try {
int i2 = boost::lexical_cast<int>(foo);
} catch (boost::bad_lexical_cast const&) {
...
}
根据您使用的CRT实施情况,您可能具有“广泛”atoi
/ strtol
功能:
int i = _wtoi(foo);
long l = _wcstol(foo, NULL, 10);
答案 1 :(得分:3)
1)手动解析(例如使用sprintf
&amp; atof
/ atoi
2)使用boost::lexical_cast
(请参阅http://www.boost.org/doc/libs/1_40_0/libs/conversion/lexical_cast.htm)
3)使用字符串流(http://www.cplusplus.com/reference/iostream/ostringstream/)