jinghuashuiyue06
jinghuashuiyue06
2015-04-13 02:50
采纳率: 100%
浏览 3.3k
已采纳

C++文件如何高效的进行文件插入或删除字符操作

例如:文件a.txt有内容"abcd",要求在"ab"之间插入字符'e'或者在"bcd"内删除字符'c'。
目前已知插入方法:
缓存文件内容,判断'e'的插入位置i,将'e'写入文件i的位置,然后将原文件位置i至文件尾的内容写入文件i+1的位置。
(有没有其他更高效的方法)
目前已知删除方法:
缓存文件内容,缓存中删除字符'c',然后将处理后的缓存覆盖写入原文件。
(有没有其他更高效的方法)
求大神们指点

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳

    文本文件没法高效。
    要么,放入内存,在内存中操作完一次性写入文件。
    要么,不使用文本文件,而使用二进制文件,在文件内部使用类似链表之类的数据结构分块。

    点赞 评论
  • oyljerry
    oyljerry 2015-04-13 04:39

    目前对于文本文件都是全部读取,然后修改,删除,再全部写回文件
    如果想提高效率,可以用内存文件等,比如MFC提供了,CMemFile,效率会好些

    点赞 评论
  • 91program
    91program 2015-04-13 04:44

    可以试试通过:内存映射
    由于你没有说编程环境与编程语言,所以只能建议这么多。然后呢,你自己去查找(Google 或 百度)相关的内容。

    点赞 评论

相关推荐