问题描述
- 【c语言】关于文本内容替换
-
请问各位,对一个文本的一行内容进行替换操作,新内容比原内容长度短,多出来的那段字符怎么删除掉?多谢
ps.由于操作原因不允许生成一个临时文件再通过删除原文件再将临时文件改名的方式。
解决方案
如果文本很大,效率会很低,最好的就是内存映射
解决方案二:
重新设置文本的大小为改正后的大小,这样就相当于把多余的删除了
解决方案三:
直接从替换位置往后写,最后再设置文件长度截断文件。
windows下SetFilePointer SetEndOfFile
linux下chsize ftruncate
解决方案四:
可以替换后,把下一行数据直接填充多出来已经无用的数据呀~文本数据本质就是字符流,文本数据通过换行符来分割内容,作为段的分割~但本质上文本数据流存储在连续的存储空间~
解决方案五:
如果这行在最后好办,其他位置就只能慢慢替换了,
时间: 2024-11-18 07:46:51