如问题所述,我想将一个类的自定义数据类型数据写入使用ifstream在C++中的文件。需要帮忙。如何使用ifstream将任何自定义数据类型写入文件?
回答
对于一个任意的类,比如说,Point
,这里是一个相当干净的方式写出来一个ostream。
#include <iostream>
class Point
{
public:
Point(int x, int y) : x_(x), y_(y) { }
std::ostream& write(std::ostream& os) const
{
return os << "[" << x_ << ", " << y << "]";
}
private:
int x_, y_;
};
std::ostream& operator<<(std::ostream& os, const Point& point)
{
return point.write(os);
}
int main() {
Point point(20, 30);
std::cout << "point = " << point << "\n";
}
+1。我唯一想补充的是,如果不想在类中使用公共的'write'方法,可以在类中声明全局重载的'operator <<'(_inserter_)作为'friend'然后将'write'私有,或将其代码直接移入插入器。 – stakx 2010-05-02 09:24:07
谢谢你的建议@stakx。我曾经把它编写成没有写入的“朋友”,但发现编写'point.'非常繁琐。我必须承认,我从来没有考虑过私人的“写”选项。我想,一旦你决定使用“朋友”,重复的前缀比私人的“写”更省力。 – 2010-05-02 09:49:32
事实上,我发现你的解决方案非常干净,公共的'write'肯定不会受到伤害,尤其是,因为它与另一个开发人员通信,该插件可能也适用于该类。我本人并不是“朋友”的大朋友,但认为需要为完整性而提及。 ;) – stakx 2010-05-02 10:03:02
- 1. 如何将数据类型映射到自定义类型?
- 2. 如何在VHDL中将实际数据类型写入文件?
- 3. 如何使用自定义数据类型创建数组?
- 4. 如何使用ifstream将文件输入到2D数组中?
- 5. 使用Swift在自定义文件夹中写入数据
- 6. 如何将NumPy数据类型转换为自定义数据类型?
- 7. 如何使用自定义类型作为nusoap中另一个自定义类型的数据类型
- 8. 自定义构建任务:如何将输出写入构建日志文件
- 9. 使用自定义数据类型
- 10. 如何使用@ Html.DropDownListFor与自定义数据类型
- 11. 使用UIActivityViewController自定义文件类型
- 12. 将数据写入文件并设置自定义图标
- 13. 如何使用Intents发送自定义文件类型?
- 14. 如何将数据写入.SLK文件
- 15. 如何将数据写入xml文件
- 16. 如何将数据写入XML文件?
- 17. 如何将数据写入到文件
- 18. 如何将数据写入Excel文件?
- 19. 如何将数据写入文件?
- 20. 将文本文件读入自定义数据类
- 21. 使用泛型类定义导入数据文件
- 22. 如何设计/自定义输入类型文件元素?
- 23. 如何将文件插入到文件流数据类型
- 24. 如何使用Matlab将“大数据”写入文本文件
- 25. 如何使用ANSI格式将数据写入文本文件
- 26. 如何使用JavaScript将数据写入文本文件
- 27. 如何将字符串转换为自定义数据类型
- 28. 如何将图标分配给android自定义文件类型?
- 29. 如何将图标分配给自定义文件类型?
- 30. 如何将大型xml(自定义)文件导入到wordpress中
你想写一个ifstream吗?无可否认我的C++有点生疏,但这似乎不可能。 – 2010-05-02 09:01:04
是的,你需要一个'ofstream'或者'fstream'。 – stakx 2010-05-02 09:25:24