根据类引用,TixmlText 将 const char* 值作为输入。我需要将从文本文件读取的整数数据存储到 xml 中。整数数据存储在 int 向量中,向量的每个元素在传递给 Tixml 文本函数之前都转换为 const char*。
const char* intToXmlChar(int num)
{
stringstream abc;
string value;
abc<<num;
value=abc.str();
const char* ret_val = value.c_str();
//char* conv_val = const_cast<char*>(ret_val);
return ret_val;
}
但是当我终于看到生成的 xml 文档时。我在保存数字的元素中得到垃圾值
<timestamp>1�504</timestamp>
我们如何正确存储整数数据?
我已经在tinyxml.h中追踪到问题发生的地方
class TiXmlNode : public TiXmlBase
功能
void SetValue(const char * _value) {
printf(" pre ---number--- %s using this \n",_value); //-- if the value is say 18504
value = _value;
printf(" post ---number--- %s using this \n",_value); //-- becomes 1�504 saved in xml
}
值相同class TiXmlNode
的地方TIXML_STRING value;
- 问题:我错过了一些非常简单的事情吗?
- 问题:如何正确存储整数数据
编辑:感谢文档的答案,我错过了使用编译时间定义:
TIXML_USE_STL
编译一个或另一个版本。这可以由编译器传递,或者设置为“tinyxml.h”的第一行。
注意:如果在 Linux 中编译测试代码,设置环境变量 TINYXML_USE_STL=YES/NO 将控制 STL 编译。在 Windows 项目文件中,提供了 STL 和非 STL 目标。在您的项目中, 将“#define TIXML_USE_STL”行添加为 tinyxml.h 的第一行可能是最简单的。