我在与文件处理相关的问题上遇到了问题 例如,而不是
FILE *f1;
f1=open("something.txt")
然后使用fread,fwrite等,我无法理解如何在c ++中产生相同的结果?
还有这些类型:
fwrite(&'object of class',sizeof('object of class'),1,fp);
我不知道c ++中这段代码的等价物是什么
打开文件时的“ab +”等价是什么?
答案 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
的版本也可以在这里使用