如何将由类的对象组成的QVector的数据写入文件?
How can I write data of a QVector that consists of objects of my class to file?
如何将由类对象组成的QVector的数据写入文件?我怎么能做到呢?
你的问题很笼统,但我会尽力的。
假设您已经编写了一个想要存储在QVector
中的类。这很简单:
class MyClass {
public:
MyClass(double input) : a(input) {}
private:
double a;
};
QVector<MyClass> classes;
classes.push_back(MyClass(1.0));
classes.push_back(MyClass(2.0));
classes.push_back(MyClass(3.0));
您想要序列化类MyClass
,以便operator<<
了解如何将其写入输出流。您可以通过向MyClass
定义添加以下函数签名来实现这一点:
class MyClass {
// omitted
friend QDataStream& operator<<(QDataStream &stream, const MyClass &class) {
stream << class.a;
return stream;
}
};
我在类本身中定义了operator<<
,您应该在实现文件中定义它。
现在,我们可以自由地将vector的输出写入文件:
QString filename = "/path/to/output/file/myclass.txt";
QFile fileout(filename);
if (fileout.open(QFile::ReadWrite | QFile::Text)) {
QTextStream stream(&fileout);
for (QVector<MyClass>::const_iterator it = classes.begin();
it != classes.end(); ++it) {
out << *it;
}
// and close the file when you're done with it
fileout.close();
}
这应该足够让你开始了。请记住,我没有测试过这个代码,所以使用你自己的风险!
相关文章:
- 防止主数据类型C++的隐式转换
- 将 Qvector<uint8_t> 转换为 QString
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- C++将文本文件中的数据读取到结构数组中
- 如何在C++中序列化结构数据
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 在c代码之间共享数据的最佳方式
- 链表,反向函数,数据结构
- 数据成员SFINAE的C++17测试:gcc vs clang
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 从QSqlTableModel获取数据并放入QVector<QPointF>的最快方法
- 将QSqlQueryModel数据转换为QVector
- 如何将由类的对象组成的QVector的数据写入文件?
- 将QVector从一个信号传递到不同线程中的插槽会导致数据复制吗?