Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ifstream将任何自定义数据类型写入文件? 如问题所述,我想用C++中的IFFILE将类的自定义数据类型数据写入文件。需要帮助。_C++_Iostream_Fstream_Inserter - Fatal编程技术网

如何使用ifstream将任何自定义数据类型写入文件? 如问题所述,我想用C++中的IFFILE将类的自定义数据类型数据写入文件。需要帮助。

如何使用ifstream将任何自定义数据类型写入文件? 如问题所述,我想用C++中的IFFILE将类的自定义数据类型数据写入文件。需要帮助。,c++,iostream,fstream,inserter,C++,Iostream,Fstream,Inserter,对于任意类,例如,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_ << ",

对于任意类,例如,
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";
}
#包括
类点
{
公众:
点(intx,inty):x_ux,y_y{}
std::ostream&write(std::ostream&os)常量
{

对于任意类,比如说,
Point
,返回os,这里有一个相当干净的方法将其写入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";
}
#包括
类点
{
公众:
点(intx,inty):x_ux,y_y{}
std::ostream&write(std::ostream&os)常量
{

当然,我的C++有点生疏,但这似乎不可能。你需要一个<代码>流>代码>或者<代码> fStase>代码>。你想给IFScript写一封信吗?当然我的C++有点生疏,但这似乎不可能。你需要一个<代码>流>代码>或者<代码> fStase
+1.我想补充的唯一一件事是,如果不想在类本身中使用公共
write
方法,可以声明全局重载
操作符@stakx。谢谢你的建议。我过去常常把它编码为
朋友
,但没有
write
,但发现编写
点很乏味。
。我必须承认,我从未考虑过私有
写入
选项。我想,一旦你决定使用
朋友
,重复前缀比私有
写入
要省力。事实上,我发现你的解决方案非常干净,而公共
写入
肯定没有什么坏处,尤其是当它与另一个开发人员沟通时
这里有一个错误。write应该声明为const.std::ostream&write(std::ostream&os)const+1.我想补充的唯一一件事是,如果不想在类本身中使用公共
write
方法,可以声明全局重载
运算符@stakx。谢谢你的建议。我过去常常将其编码为
朋友
,但没有
write
,但发现编写
点非常繁琐。
。我必须承认,我从来没有考虑过私有
写入
选项。我想一旦你决定使用一个
朋友
,重复前缀比私有
写入
要省力。事实上,我发现你的解决方案非常干净,而公共
写入
肯定没有什么坏处,尤其是当它与另一个开发人员沟通时
这里有一个错误。write应该声明为const.std::ostream&write(std::ostream&os)const