我有Shapes类和gShapes矢量。 我正在将对象形成矢量形式的文件,就像这样。

char* str;
vector<Shape*>::iterator it;
for( it = gShapes.begin(); it != gShapes.end(); it++ )
{       
    str = reinterpret_cast<char*>(reinterpret_cast<void*>(*it));
    saveFile.write(str, sz);
}

直到我在类中添加动态内存,然后这段代码将指针写到文件而不是数据中时,它的性能才是完美的。

===============>>#1 票数:4 已采纳

总是[除非在极少数情况下,只是为了满足那些指出那些极少数情况的学徒的要求],当将数据存储到文件中时,数据需要“序列化”-换句话说,以“单位”形式存储格式-不是指针,引用或其他间接形式。

因此,如果Shape有一个指针,则需要“解散”该指针,就像使用对象的operator <<打印内容一样。

  ask by w770115 translate from so

未解决问题?本站智能推荐:

6回复

将向量数据写入文件的C ++问题

我想将向量v的内容写入文件。 问题在于,不是内容而是地址将放置在文本文件中。 当我用* pos 代替 &pos时,出现错误: 错误C2679:二进制'<<':未找到采用'entry'类型的右操作数的运算符 如何正确运作?
1回复

将CSV文件写入C语言的向量中(续)

基本上我有14800x8矩阵,已从matlab中提取为CSV文件(“ moves.mo”)。 我需要将此文件读取为14800个向量,每个向量具有8个值。 这是文件中的几行: 我写了以下代码: 它可以编译,但没有给我令人满意的输出(即仅打印Fooey!)。 我不知道为什么..
1回复

如何使用C ++中的函数将向量写入文件?

这是我的代码的一些摘要。 首先是我编写的函数。 给我一个错误的函数是fileout函数,该函数应该将向量写入文件。 这是该函数的主要用法。 fileout函数内部的fout被标记为错误: “ 6 IntelliSense:“ std :: basic_ofstre
1回复

如何使用C ++将向量中的数据写入特定位置的文本文件?

如果我的文本文件看起来是这样。 usrname@gmail.com 3223434324数据1数据2 name@gamil.com 2343454454 data3 data4 我已经使用vector读取了这些值。 我需要在文件第一行的末尾添加一个字符串。 我该怎么办?
1回复

将c ++代码中的向量写入文件,然后在matlab中读取

我有一个用c ++生成的数据类型为double的矢量,我试图将其写入文本文件,以便随后可以将该文本文件加载到matlab中,以便从矢量中绘制数据与matlab中已经存在的数据作图工作区。 我能够创建一个名为real_data2.txt的文件,并且程序运行时没有错误,但是当我尝试在Matlab中
2回复

在二进制文件C ++中写入和加载结构向量

我真的需要你的帮助。 我的代码中包含以下结构: 我想要做的是将我的struct Record的向量存储在一个二进制文件中,并成功地将其加载回去。 问题是我的结构里面有两个向量,它们给我带来了麻烦。 你能帮我吗?
1回复

如何使用C ++在向量中成功写入.DAT文件内容?

我正在尝试将保存在名为PatientInSystem的向量中的已保存患者列表写入.DAT文件。 但是,由于某些原因,它将无法正常工作。 有人知道我可能做错了吗? [下一部分代码与上述相同,仅在获得第一笔帮助后才进行编辑] 这是代码的编辑版本... PatientList是我的临
3回复

C ++将文本文件读入向量 然后根据内部向量中的第一个单词写入向量或数组

这是我发布的c ++程序的问题的一个进展,该程序用于读取数组中具有恒定(但未知)列数的未知大小的csv文件(仅用浮点数填充) 。 我现在进入了一个真正的应用程序,在该应用程序中我读取了以下文件: 称为“ example.2dm”,并尝试为以E4Q E3T和ND开头的行中存储的数据写入3
4回复

将C ++向量写入输出文件

如何将矢量输出到文件,每个浮点数用逗号分隔? 如果可能的话,我还想避免打印方括号。
5回复

C ++写入字节的文件向量

我有: 我试图以这种方式保存文件中的数据(但我有错误): 如何处理或转换数据以将其写入文件中。