在C++中,如何实现向同一文件中多次添加数据而不不覆盖之前的数据,给出详细解释,先谢谢。 5

不是一次性添加多个数据是在程序执行过程中,需要向文件中添加数据比如添加一次后,继续执行到某一处,又需要向文件中添加数据而且每次添加后都换行,不是直接添加在上一次数据的末尾... 不是一次性添加多个数据
是在程序执行过程中,需要向文件中添加数据
比如添加一次后,继续执行到某一处,又需要向文件中添加数据
而且每次添加后都换行,不是直接添加在上一次数据的末尾
展开
 我来答
yock狂笑
2010-10-22
知道答主
回答量:12
采纳率:100%
帮助的人:2.5万
展开全部
那要看你的文件是以什么形式存取的,如果是文本文件:打开文件后,将文件指针移动到要插入的地方,将此位置后的数据存入缓存,然后加入新数据,在加上原来的缓存数据,因为在普通文件的存储是磁盘上的连续空间。
如果是以记录链表的方式存储,就改变一下链接就行了,像关系数据库那样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
an354579044
2010-10-22 · TA获得超过344个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:265万
展开全部
实例:

CString a1="ok";

FILE *pFile=fopen("c:\\an.txt","a");

fwrite(a1,1,strlen(a1),pFile);

fclose(pFile);

关键在"a"这个模式下,写入之前自动把写入位置挪到最后一个字符后面
就不会之前的内容覆盖了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sai_84
2010-10-22 · TA获得超过531个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:418万
展开全部
用append的方式打开文件。比如:
fstream file;
file.open("test.txt", ios_base::out | ios_base::app);

FILE* file;
file = fopen("test.txt", "a");

或者通过seek来控制,比如:
CFile file;
file.Open("test.txt", CFile::modeWrite);
file.SeekToEnd();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingmou999
2010-10-22 · TA获得超过896个赞
知道小有建树答主
回答量:430
采纳率:0%
帮助的人:0
展开全部
其实程序执行到需要写文件的时候,需要先判断下是否存在此文件,存在则读一次文件,将文件读到串或流变量中,然后在读写此变量即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿峰的编程博客
2010-10-22 · TA获得超过1166个赞
知道小有建树答主
回答量:620
采纳率:0%
帮助的人:418万
展开全部
#include <stdio.h>

int main()
{
FILE* f ;
f = fopen("D:\\GIRL.TXT","a+");//注意标志
fprintf(f, "[%s %s]%s\n",__DATE__ ,__TIME__,"Hello girl ! Let me play play!");
fclose(f);
return 100;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式