簡體   English   中英

使用帶有Dev C ++的RapidXML在C ++中解析XML文件

[英]Parsing an XML file in C++ using RapidXML with Dev C++

因此,我必須在課堂上為我的C ++項目解析XML文件,而且我正在使用RapidXML。 Rapidxml_iterators.hpp文件給我帶來了一些麻煩。 我正在使用Dev C ++

首先,我有以下代碼:

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;

在main.cpp中,我執行了以下操作:#include“ rapidxml_iterators.hpp”,並在嘗試編譯時給了我一個預期的嵌套名稱說明符錯誤。 我按照g ++在linux下編譯Rapidxml的說明進行操作,並將代碼從頂部更改為以下代碼:

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;

現在,它給了我這些錯誤:

- ptrdiff_t' in std中沒有名為ptrdiff_t' in類模板-ISO C ++禁止聲明沒有類型的`difference_type'

如果有人對如何解決此代碼有任何想法,我將永遠感激不已。 提前致謝!

您缺少std::ptrdiff_t的定義。 因此,編譯器告訴您,由於未定義,因此無法對其進行typedef

只需在文件頂部包含適當的標頭,您就會很好(僅出現此錯誤!),也就是說,添加:

#include <cstddef>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM