首页 > 解决方案 > boost::Property_tree 不能写入双精度值

问题描述

我有一个带有一些值的简单 ptree,并且出于调试原因想将其输出到文件中。但是,每当我想编写双精度值时,它都会抛出一个糟糕的任何强制转换异常。我错过了什么吗?

     property_tree::ptree obj;
     obj.put<std::string>("abc1", "t1");
     obj.put<std::string>("abc2", "t2");
     obj.put<std::string>("abc3", "t3");
     obj.put<std::string>("abc4", "t4");
     obj.put<std::string>("abc5", "t5");
     obj.put<double>("lksd", 12.393); // this courses 
     const auto settings = boost::property_tree::xml_writer_make_settings< std::string >(' ', 4);
     boost::property_tree::xml_parser::write_xml("obj.xml", obj, std::locale(), settings);

输出看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<abc1>t1</abc1>
<abc2>t2</abc2>
<abc3>t3</abc3>
<abc4>t4</abc4>
<abc5>t5</abc5>
<abc6>

标签: c++boostboost-propertytree

解决方案


推荐阅读