CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

怎样以插入的方式向文件中写数据?

楼主windywater(超级宇宙无敌大白痴)2006-03-04 13:00:03 在 C/C++ / C++ 语言 提问

用fstream向文件写数据时,通常都是以位置指针为起点,以覆盖的方式写数据,但是我想从当前位置插入一段数据,应该怎么做? 问题点数:20、回复次数:7Top

1 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 13:36:04 得分 0

又没人回答?Top

2 楼0delphi(睡个舒服觉)回复于 2006-03-04 13:52:46 得分 3

这个问题,已经有很多人问过了,没有什么好解决的办法,只有   把你要插入的内容,跟后面的内容,在重写一次Top

3 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 13:56:15 得分 0

没有别的好办法吗?如果文件很大的话那效率不是很低?Top

4 楼zengkun100(夜的孩子)回复于 2006-03-04 16:52:01 得分 3

是啊!  
  我以前也问过类似的问题,解答的方案类似,要想提高效率,应该考虑使用Windows或者其他操作系统提供的高级文件功能,比如内存映射文件Top

5 楼rabbit729(无名胜有名)回复于 2006-03-04 18:36:00 得分 2

C++中的ios_base::app提供了以追加方式向文件中写数据Top

6 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-04 22:14:18 得分 0

C++中的ios_base::app提供了以追加方式向文件中写数据  
   
  -------------------------  
   
  这样只能加到文件尾部,但是不能加在中间。Top

7 楼steedhorse(晨星)回复于 2006-03-04 23:45:09 得分 12

“文件很大”,同对又对效率要求比较高的话,应该自己想办法通过精心设计你的文件格式来解决问题。比如让文件物理内容逻辑上分成好多“记录”或者“块”,然后给每个块编上号,同是增加“删除标记”,这样,不管你随机的“添加”,“删除”就成了一种逻辑上的动作。当然,这种时间上的效率是以牺牲磁盘空间的存储效率和增加程序的复杂度来获得的。  
  或者也可以采用类似“链式存储”的方法。总之方法不只一种,但都需要精心地去设计和实现。  
   
  直接的方法就甭想了,如果你是操作系统的编写者,你也不会提供那种磁盘操作的API,或者即使你提供了,你也不是“提高”了效率,你只不过是同样通过很低效的移动内容的方法编写了一个函数用来误导用户而已。Top

相关问题

  • 对文件插入数据的问题
  • 往数据库插入二进制文件怎么插入啊!
  • 请问如何将数据插入到xml文件中去??
  • 为什么我不能把文件插入到数据库中?
  • 把文件插入到数据库中出错
  • 怎么样在文件中间插入数据?(Visual C++6.0)
  • 帮忙哦~·文件中有N行数据要象数据库表中插入.....
  • 用CDaodatabase向Access中插入数据,删除后数据库文件大小不变,再插入数据,文件仍然增大,如何解决?
  • 插入数据
  • 插入数据

关键词

  • c++
  • 文件
  • 数据
  • 内容
  • 插入
  • 效率
  • 写数据
  • 类似
  • 方式
  • 方法

得分解答快速导航

  • 帖主:windywater
  • 0delphi
  • zengkun100
  • rabbit729
  • steedhorse

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo