C++怎么把数据保存到一个文件里

要写一个通讯录。要把输入的姓名等信息保存起来。书上说用ofstream类可以保存到文件里。可是如果再把它打开里面的信息就会被清楚。那我怎么把新的信息增加到一个文件里面又不... 要写一个通讯录。要把输入的姓名等信息保存起来。书上说用ofstream类可以保存到文件里。可是如果再把它打开里面的信息就会被清楚。那我怎么把新的信息增加到一个文件里面又不会失去文件里面原有的信息呢 展开
 我来答
冉易云ST
推荐于2016-10-02 · TA获得超过535个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:554万
展开全部
定义写入的时候指定格式,例如:
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()终止流状态,否则禁止对文件作进一步读写操作。
追问
追加是必须在已经创建文件的前提下吗?
例如:ofstream out("out.txt",ios::out | ios::app);
是不是既可以创建一个文件又可以向里面附加数据?
追答
是的……。
ofstream out("out.txt",ios::out | ios::app); 如果out.txt不存,则不会创建文件的。这样写的功能就是在已存在的文件末尾添加数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-07
展开全部
用数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式