Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C++; 这是一个C++代码。我想在文件中写一个指向结构的指针。 当我尝试这样做时,它会生成一个错误。我做的是>>obj1[0];大体上 struct node3{ node3(){ nextContent = NULL; for (int i = 0; i<1020; i++) content[i] = '\0'; } char content[1020]; node3* nextContent; };_C++ - Fatal编程技术网

如何在C++; 这是一个C++代码。我想在文件中写一个指向结构的指针。 当我尝试这样做时,它会生成一个错误。我做的是>>obj1[0];大体上 struct node3{ node3(){ nextContent = NULL; for (int i = 0; i<1020; i++) content[i] = '\0'; } char content[1020]; node3* nextContent; };

如何在C++; 这是一个C++代码。我想在文件中写一个指向结构的指针。 当我尝试这样做时,它会生成一个错误。我做的是>>obj1[0];大体上 struct node3{ node3(){ nextContent = NULL; for (int i = 0; i<1020; i++) content[i] = '\0'; } char content[1020]; node3* nextContent; };,c++,C++,错误: 错误C2679:二进制“>>”:找不到使用右手的运算符 “node3*”类型的操作数(或没有可接受的转换) 发生此错误的原因是您没有重载要与自定义对象一起使用的>>运算符。操作员不知道如何从文件中读取数据结构,反之亦然(操作员也不知道如何将其输出到文件) 如果要从文件中读取和写入数据结构,可以使用一种称为序列化的过程,该过程将数据结构转换为可以读取/写入文件的符号(大致) “递归序列化嵌套结构”是指数据结构包含指向相同类型的其他实例的指针,从而创建链。您需要递归地遍历所有节点,以便获取

错误:

错误C2679:二进制“>>”:找不到使用右手的运算符 “node3*”类型的操作数(或没有可接受的转换)


发生此错误的原因是您没有重载要与自定义对象一起使用的>>运算符。操作员不知道如何从文件中读取数据结构,反之亦然(操作员也不知道如何将其输出到文件)

如果要从文件中读取和写入数据结构,可以使用一种称为序列化的过程,该过程将数据结构转换为可以读取/写入文件的符号(大致)

“递归序列化嵌套结构”是指数据结构包含指向相同类型的其他实例的指针,从而创建链。您需要递归地遍历所有节点,以便获取有关数据结构的所有数据并能够序列化它

还请注意,只将指针地址输出到文件是没有用的,因为无法保证下次运行程序时内存空间中会有什么。你绝对必须存储数据


实现这一点的另一种方法是将数据存储为可读文本,例如XML文件。

发生此错误的原因是您没有重载用于自定义对象的>>运算符。操作员不知道如何从文件中读取数据结构,反之亦然(操作员也不知道如何将其输出到文件)

如果要从文件中读取和写入数据结构,可以使用一种称为序列化的过程,该过程将数据结构转换为可以读取/写入文件的符号(大致)

“递归序列化嵌套结构”是指数据结构包含指向相同类型的其他实例的指针,从而创建链。您需要递归地遍历所有节点,以便获取有关数据结构的所有数据并能够序列化它

还请注意,只将指针地址输出到文件是没有用的,因为无法保证下次运行程序时内存空间中会有什么。你绝对必须存储数据


另一种方法是将数据存储为可读文本,例如XML文件。

将其转换为uint32(或64位系统上的uint64)。但这可能不是您想要的,因为很少有情况下指针需要写入文件。

将其转换为uint32(或64位系统上的uint64)。但这可能不是您想要的,因为很少有情况需要将指针写入文件。

您希望它做什么?实现您期望的任何行为的代码在哪里?基本上,您必须递归地序列化嵌套结构,或者不必太深入,只需编写一些与NULL对应的值……我想要obj1[0].content地址写入文件。什么是递归序列化嵌套结构?欢迎使用堆栈溢出。请尽快阅读这一页。你的题目是C;你的标签表示C++,因为你的代码使用了 > /Cord>输入操作符,它是用C++编写的。请注意和一致的标签,一般避免双重标记与C和C++。这常常会引起那些看问题的人的愤怒——他们是非常不同的语言,C的一个合适的答案通常是不适合C++的,而且C++的一个好的回答通常是不起作用的(如在“编译”)中,你期望C.做什么?实现您期望的任何行为的代码在哪里?基本上,您必须递归地序列化嵌套结构,或者不必太深入,只需编写一些与NULL对应的值……我想要obj1[0].content地址写入文件。什么是递归序列化嵌套结构?欢迎使用堆栈溢出。请尽快阅读这一页。你的题目是C;你的标签表示C++,因为你的代码使用了 > /Cord>输入操作符,它是用C++编写的。请注意和一致的标签,一般避免双重标记与C和C++。这常常会引起那些看问题的人的愤怒——他们是非常不同的语言,C的一个合适的答案通常是不适合C++的,而且C++的一个好的答案通常在C.中是不起作用的(如,在‘不编译’),或者使用正确大小的整数类型:<代码> UntPrTrtt< /C>。使用大小正确的整数类型:
uintpttr\u t
struct node1{
    node1(){
        for (int i = 0; i<496; i++)
            fileName[i] = '\0';
    }

    char fileName[496];
    node3* contentAdress;
};
int main(){

    node1 obj1[2097];
    node3 obj3[8192];


        ifstream is("file.txt");
//I want the obj1[0].content Address to be written in file. For that I did:
        **is >> obj1[0].contentAdress;** *THIS GENERATES AN ERROR*

        return 0;
    }