linux编译glibc_bashrc和profile区别

(1) 2024-07-08 12:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
linux编译glibc_bashrc和profile区别,希望能够帮助你!!!。

共四个文件需要引用

#include "rapidxml.hpp" #include "rapidxml_utils.hpp" #include "rapidxml_print.hpp" #include "rapidxml_iterators.hpp"

 1:修改rapidxml_iterators.hpp文件  第20 和 102 行

        // typedef typename xml_node<Ch> value_type;
        // typedef typename xml_node<Ch> &reference;
        // typedef typename xml_node<Ch> *pointer;
        // typedef std::ptrdiff_t difference_type;
        // typedef std::bidirectional_iterator_tag iterator_category;

为下面的内容

        typedef xml_node<Ch> value_type;
        typedef xml_node<Ch> &reference;
        typedef xml_node<Ch> *pointer;
        typedef typename std::ptrdiff_t difference_type;
        typedef typename std::bidirectional_iterator_tag iterator_category;

       // typedef typename xml_attribute<Ch> value_type;
        // typedef typename xml_attribute<Ch> &reference;
        // typedef typename xml_attribute<Ch> *pointer;
        // typedef std::ptrdiff_t difference_type;
        // typedef std::bidirectional_iterator_tag iterator_category;
为下面的内容
        typedef xml_node<Ch> value_type;
        typedef xml_node<Ch> &reference;
        typedef xml_node<Ch> *pointer;
        typedef typename std::ptrdiff_t difference_type;
        typedef typename std::bidirectional_iterator_tag iterator_category;

2:rapidxml_print.hpp  文件   在文件的:124行处插入如下代码

template<class OutIt, class Ch> inline OutIt print_children(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_attributes(OutIt out, const xml_node<Ch>* node, int flags); template<class OutIt, class Ch> inline OutIt print_data_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_cdata_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_element_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_declaration_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_comment_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_doctype_node(OutIt out, const xml_node<Ch>* node, int flags, int indent); template<class OutIt, class Ch> inline OutIt print_pi_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

linux编译glibc_bashrc和profile区别_https://bianchenghao6.com/blog__第1张

 

更改完毕即可使用了

1.写文件

#include <iostream> #include "../rapidxml/rapidxml.hpp" #include "../rapidxml/rapidxml_utils.hpp" #include "../rapidxml/rapidxml_print.hpp" #include "../rapidxml/rapidxml_iterators.hpp" using namespace rapidxml; int main() { xml_document<> doc; xml_node<>* rot = doc.allocate_node(rapidxml::node_pi,doc.allocate_string("xml version='1.0' encoding='utf-8'")); doc.append_node(rot); xml_node<>* node = doc.allocate_node(node_element,"config","information"); xml_node<>* color = doc.allocate_node(node_element,"color",NULL); //建议使用如下方法,否则临时变量的指针出了作用域,容易造成xml节点问题 //std::string s = "color"; //char* pname = doc.allocate_string(s.c_str()); //doc.allocate_node(node_element,pname,NULL) doc.append_node(node); node->append_node(color); color->append_node(doc.allocate_node(node_element,"red","0.1")); color->append_node(doc.allocate_node(node_element,"green","0.1")); color->append_node(doc.allocate_node(node_element,"blue","0.1")); color->append_node(doc.allocate_node(node_element,"alpha","1.0")); xml_node<>* size = doc.allocate_node(node_element,"size",NULL); size->append_node(doc.allocate_node(node_element,"x","640")); size->append_node(doc.allocate_node(node_element,"y","480")); node->append_node(size); xml_node<>* mode = doc.allocate_node(rapidxml::node_element,"mode","screen mode"); mode->append_attribute(doc.allocate_attribute("fullscreen","false")); node->append_node(mode); std::string text; rapidxml::print(std::back_inserter(text), doc, 0); std::cout<<text<<std::endl; std::ofstream out("config.xml"); out << doc; system("PAUSE"); return EXIT_SUCCESS; }

2.读文件 :

#include <iostream> #include "../rapidxml/rapidxml.hpp" #include "../rapidxml/rapidxml_utils.hpp" #include "../rapidxml/rapidxml_print.hpp" #include "../rapidxml/rapidxml_iterators.hpp" using namespace rapidxml; int main() { file<> fdoc("config.xml"); std::cout << fdoc.data() << std::endl; xml_document<> doc; doc.parse<parse_full>(fdoc.data()); std::cout << doc.name() << std::endl; //! 获取根节点 xml_node<> *root = doc.first_node("config"); std::cout << root->name() << std::endl; //! 获取根节点第一个节点 xml_node<> *node1 = root->first_node(); std::cout << node1->name() << std::endl; xml_node<> *node11 = node1->first_node(); std::cout << node11->name() << std::endl; std::cout << node11->value() << std::endl; //! 修改之后再次保存 xml_node<> *size = root->first_node("size"); // rapidxml::xml_attribute<>* nameAttr = child->first_attribute("name"); size->append_node(doc.allocate_node(node_element, "w", "0")); size->append_node(doc.allocate_node(node_element, "h", "0")); std::string text; rapidxml::print(std::back_inserter(text), doc, 0); std::cout << text << std::endl; std::ofstream out("config.xml"); out << doc; system("PAUSE"); return EXIT_SUCCESS; }

运行结果 config.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
    <color>
        <red>0.1</red>
        <green>0.1</green>
        <blue>0.1</blue>
        <alpha>1.0</alpha>
    </color>
    <size>
        <x>640</x>
        <y>480</y>
        <w>0</w>
        <h>0</h>     
    </size>
    <mode fullscreen="false">screen mode</mode>
</config>

3.读xml 格式数据

#include <iostream> #include "../rapidxml/rapidxml.hpp" #include "../rapidxml/rapidxml_utils.hpp" #include "../rapidxml/rapidxml_print.hpp" #include "../rapidxml/rapidxml_iterators.hpp" using namespace rapidxml; void readFile(char *strc) { rapidxml::xml_document<> doc; doc.parse<0>(strc); //获取根节点 rapidxml::xml_node<> *root = doc.first_node("Package"); int nSize = 0; std::cout << "config=" << root->name() << std::endl; // rapidxml::xml_node<> *child = root->first_node("LtdInfo")->first_node(); //找到 LtdInfo 节点 // std::cout << "LtdInfo=" << child->name() << std::endl; // std::cout << "LtdInfo=" << child->value() << std::endl; for (rapidxml::xml_node<> *child = root->first_node("LtdInfo")->first_node(); child; child = child->next_sibling()) { std::cout << "" << child->name() << ":=" << child->value() << std::endl; } for (rapidxml::xml_node<> *child = root->first_node("Data")->first_node(); child; child = child->next_sibling()) { std::cout << "" << child->name() << ":=" << child->value() << std::endl; } strc = NULL; } int main() { char strbuf[] = "<Package>" "<LtdInfo>" "<Code>[454]</Code>" "<Pwd>[]</Pwd>" "<Class>[N010]</Class>" "<Flag>[]</Flag>" "</LtdInfo>" "<Data>" "<Name>[Datatype,DateTime,millisecond,Data]</Name>" "<Value>[0,2022-04-08 21:05:46,445,21.6,20.3,18.6,17.6,16.7,16.6,15.6,14.4,14.2,14.2,12.5,10.6,8.8,9.3,8.2,6.3,7.1,4.6,4.9,3.9,0.1,11.8,1.4,-0.8,-1.7,-0.7,13.8,-1.5,-2.6,-0.8,-4.3,-2.1,-2.5,1.9]</Value>" "</Data>" "</Package>"; readFile(strbuf); } 

linux编译glibc_bashrc和profile区别_https://bianchenghao6.com/blog__第2张

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复