我们大一C语言要做课程设计,最后这些功能实在不会实现,因为课讲得慢,对文本的处理方法不懂,恳求各位分享下处理思路,感激不尽!告诉我大概处理思路就行,我是个初学者,很多东西不懂,要讲得浅显点哦~ 现在我不会实现的功能是: 这些功能如果是针对数组实现,我都会。但针对文本实现这些功能,一点都不懂。其实我只是不知道怎么样处理文本数据比较方便,希望能得到各位前辈的帮助!先谢谢! 新人报道。 |
|
50分 |
我来说说我的理解。
首先,文本文件在磁盘上的存储一般是一块一块连续的, 如果单纯修改文件的内容(一对一修改),这种情况下不会修改文件的长度,这样还好,直接读到那个位置将新数据写入即可。 但是如果涉及到了文件长度的修改,比如删除了一些字符,或者是插入了一些字符,这样必然会影响之后的数据位置的偏移。 所以我的思路是,先读出数据,存到一个buffer里,然后按要求修改数据,最后再把数据写入文件(写入之前将文件truncate为0)。 上面的思路有一个问题,如果文件比较大,那buffer也不可能想多大就多大对吧, —————– |
50分 |
既然是初学者, 那就不要考虑太多.
最简单的实现场景即可. 1. 读取原文件到内存缓冲区. (可以假定文件不超过1K) 2. 按需要增删改查字符串. 3. 重新写回文件. 先做好这个, 再来看1楼提到大文件操作, 你就明白得多了. |
按需要增删改 要怎么实现的?
例如文本内容 |
|
按需要增删改 要怎么实现的? |
|
存到缓存区之后可以随便自主修改的吗?我不知道怎么实现这个功能… |