从C迁移到C ++

时间:2016-06-28 16:12:38

标签: c++ c

我在与文件处理相关的问题上遇到了问题 例如,而不是

FILE *f1;
f1=open("something.txt")   

然后使用fread,fwrite等,我无法理解如何在c ++中产生相同的结果?
还有这些类型:

fwrite(&'object of class',sizeof('object of class'),1,fp);

我不知道c ++中这段代码的等价物是什么

打开文件时的“ab +”等价是什么?

1 个答案:

答案 0 :(得分:1)

不推荐对非POD(普通旧数据)类型进行此类序列化,因为虚函数表可能会被破坏,成员指针也会被破坏。我建议您在班级中添加Serialize(const std::ostream & archive)方法。

但是,如果你仍想将POD-struct写入文件,你可以去

#include <fstream>
//...

std::ofstream str("Filename.txt");
str.write(reinterpret_cast<const char *>(&myPODobject), sizeof myPODobject);

但是你使用FILE *fwrite的版本也可以在这里使用