使用wcstod转换零值

时间:2018-04-26 07:15:51

标签: c++ xml

使用wcstod()转换为我从XML文件中读取的数字类型文本数据:

double x;
BSTR name;
MSXML::IXMLDOMNodeListPtr theList;
MSXML::IXMLDOMNodePtr theItem;

//Some XML API here...

theItem = theList->Getitem(0);
theItem->get_text(&name);
x = wcstod(name,NULL);

问题是这个函数在失败时返回NULL,但有时候我想读取并转换有效字符串L" 0"。 这有解决方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用std::stod,如果函数失败,将抛出异常。

确保NULL初始化为Getitem。添加get_text#include <string> BSTR name = nullptr; ... double x = 0; if(name) { try { x = std::stod(name); } catch(...) { //error ... } }

的错误检查
{{1}}