c++如何把一个类存到文件里

就像一个类里有structplanea[i].num1,a[i].star_time1,a[i].stop_time1,a[i].star_city1,a[i].stop... 就像一个类里有struct plane
a[i].num1, a[i].star_time1, a[i].stop_time1, a[i].star_city1, a[i].stop_city1
怎么把他们存到一个文件里?
展开
 我来答
百度网友da8a46e
2015-10-24 · TA获得超过7295个赞
知道小有建树答主
回答量:2307
采纳率:93%
帮助的人:231万
展开全部
类就是一种自定义的数据类型,本质上和数组甚至int,char这样的基本类型是没区别的。得给它赋值才能使用,就是类对象。
定义写入的时候指定格式,例如:
ofstream out("out.txt",ios::out | ios::app); //这样就可以实现追加添加啦

ios_base::in
“r”
打开一读取

ios_base::out
“w”
等价于ios_base::out|ios_base::trunk(有时可以省略)

out|trunc
“w”
打开一些如文件,如果存在,则截取文件

out|app
“a”
打开以写入,只追加

in|out
“r+”
打开以写入,在文件读取的位置写入

in|out|trunc
“w+”
打开以读写,如果存在,则首先截取文件

out|binary
cmodeb
以C++mode和二进制模式打开,例如ios_base::in|ios_base::binary成为“rb”

out|ate
“cmode”
以指定的模式打开,并已到文件尾。C则需要使用独立的函数调用。例如,ios_base::in|ios_base::ate则被转换为“r”和C函数调用fseek(file,0,SEEK_END);

对于app模式,只能追加,但是不能修改原来已经存在的数据,要是其能修改,则需要与out模式组合,即app|out。对于已经处理到末尾的文件,eof位将被被设置为1,因此,如果想对文件再作修改,则需要调用函数fout.clear()终止流状态,否则禁止对文件作进一步读写操作。
匿名用户
2015-01-07
展开全部
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

struct plane{
plane(int v, string n):val(v), name(n){}
int val;
string name;

};


int main()
{
fstream fout("plane.txt", ios::app);
plane p(10, "zhang");
fout << p.val <<" "<< p.name <<endl;
fout.close();

system("pause");
return 0;
}

以上参考代码,原理相同

执行结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2015-01-07 · TA获得超过8613个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3934万
展开全部
#include <iostream>
#include <fstream>

using namespace std;

class A {
private :
    int a;
    int b;
public :
    A(int aa = 0, int bb = 0) : a(aa),b(bb) {}
int GetA()const { return a; }
int GetB()const { return b; }
    // ......
};

int main() {
    A a[2] = {A(1,2),A(2,3)};
    ofstream outf("data.dat",ios_base::out|ios_base::binary);
    for(int i = 0; i < 2; ++i)
        outf << a[i].GetA() << a[i].GetB();
    outf.close();
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kja910
2015-01-07 · TA获得超过6859个赞
知道小有建树答主
回答量:602
采纳率:100%
帮助的人:258万
展开全部
类就是一种自定义的数据类型,本质上和数组甚至int,char这样的基本类型是没区别的。你得给它赋值才能使用,就是类对象。
就像你定义以个 int a;是无法把它打印或存储的,打印了也是乱码;必须得先 int a = 1,这样初始化一下。
你的问题就没说清楚,plane 和 a是啥都没说,估计你的意思a就是plane的一个对象吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iicup
2015-01-07 · TA获得超过890个赞
知道小有建树答主
回答量:597
采纳率:85%
帮助的人:211万
展开全部
你依次不这些数据存入文件就好了,
用的时候先创建一个plane变量, 然后把这些数据从文件里读出来一次给对应的成员变量赋值就行了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式