c - 请求不是结构或 union 的成员?开发C++

标签 c structure

我有以下代码:

#include <stdio.h>
#include <string.h>
#define MAX 419430400
#define CHR 50
#define INT 2000

FILE *doc;
char *path;


int BITE, LOOP;
int DOCUMENT[MAX];
int LENGTH = 0;


struct XmlNode {
    char Tags[CHR];
    char InnerText[INT];
    char Atributes[CHR];
};
typedef XmlNode;

void LoadXml (char _path[200]) {
    LOOP = 0;
    path = _path;
    doc = fopen(path,"r+");
    do {
        BITE = fgetc(doc);
        DOCUMENT[LOOP] = BITE;
        LOOP++;
    } while(!feof(doc));
    LENGTH = LOOP - 1;
}
void CloseXml (char _path[200]) {
    path = NULL;
    fclose(doc);
}
void SaveXml (char _path[200]) {
    LOOP = 0;
    FILE *save = fopen(_path,"w+");
    for (LOOP = 0; LOOP < LENGTH; LOOP++) {
        fprintf(save,"%c",(char)DOCUMENT[LOOP]);
    }
    fclose(save);
}
void PrintXml () {
    LOOP = 0;
    for (LOOP = 0; LOOP < LENGTH; LOOP++) {
        printf("%c",(char)DOCUMENT[LOOP]);
    }
}
void AppendChild(XmlNode _node, XmlNode _child)
{
    char _tagBeggin[CHR+2], _tagEnd[CHR+3];
    _tagBeggin[0] = '<';
    _tagEnd[0] = '<';
    _tagEnd[1] = '/';
    for (LOOP = 0; LOOP < strlen(_child->InnerText); LOOP++){

    }
}   

错误出现在 AppendChild 过程中,或者每当我尝试访问像这样的值时:_child.InnerText,同样的错误。

Error: request for member 'InnerText' in something not a structure or union.

该程序作为家庭作业。想法是为我自己制作一个使用 xml 文件的程序,不使用任何库。我决定做我的。这就是我所做的。

AppendChild 函数应该包含一个现有的 XmlNode 到一个新的 XmlNode。

感谢您的帮助。 :)

最佳答案

typedef XmlNode; 应该是

typedef struct XmlNode XmlNode; 
typedef XmlNode *XmlNodePtr;

发送给函数时始终使用指向结构的指针,因此将函数修改为,

void AppendChild(XmlNodePtr _node, XmlNodePtr _child)

关于c - 请求不是结构或 union 的成员?开发C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427605/

相关文章:

c - 对称加密 key 交换和存储?

c++ - 用 C/C++ 代码中的定义替换所有函数调用

c - 使用 MPI Send/Recv 实现自己的矩阵乘法

c - 将结构从一个列表的末尾移动到另一个列表的开头

c++ - 帮助声明 C++ 结构,并将 float 组作为其成员之一

c - free() 一个字符数组**

c - 如何将字符串中的\字符更改为/字符?

c - 嵌套结构,读取字符串 C 的字符时出错

c - 分解具有特定结构的原始字节字符串会给出错误的数据

c - 结构体名称 *ptr = (相同的结构体名称 *) p2;