Chinaunix

标题: 如何使用C语言标准库实现文本行替换? [打印本页]

作者: snan4love    时间: 2013-01-24 14:51
标题: 如何使用C语言标准库实现文本行替换?
本帖最后由 snan4love 于 2013-01-24 14:54 编辑

比方说原文件是
111111
222222
333333
我想把222222这行替换成一个新行,新行有可能比之前的行长也可能短,
如何使用标准库来实现呢?
在网上找到的方法是创建一个新的文件来替换之前的原文件(一行一行复制,除了想要替换的行用新行来代替外),有没有比这个更好的方法了?
可以直接使用 文件I/O实现吗?
先谢谢大家了~
作者: hellioncu    时间: 2013-01-24 14:56
基本上只能这样,有更好的方法也只是细节上的优化而已
作者: Frahm    时间: 2013-01-24 17:11
如果文件不大,就一次性全读出来吧,接下来处理字符串,然后一次性全部写回去
作者: socay2    时间: 2013-01-25 10:57
我也想知道,帮你顶!
作者: linux_c_py_php    时间: 2013-01-25 14:15
除了写新文件后rename回去,没有更好的办法了.
作者: lin5161678    时间: 2013-01-25 14:25
本帖最后由 lin5161678 于 2013-01-25 14:26 编辑

文件内容其实可以看出是一个一维数组里面
11111111\n22222222\n33333333
这里你修改22222.. 可能长可能断 那么 后面哪行33333必须前移 或者 后移
可以实现 只是灰常的麻烦
还是写新文件 然后rename方便




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2