用C++怎样修改文件中的一个字符--期待大虾帮忙
最近在写一个程序,要用到修改一个txt文本里一个特定位置的字符,找了很久也没找到方法,有一个人说分开做:把该位置之前的字符放到另一个文件里,然后添加该字符,最后在添加剩余的字符。这样是不是太慢烦了,还浪费内存。所以,问一下大家有没有什么好的方法,小弟在这里请教了。麻烦大家了
[解决办法]
没有办法,如果不涉及通过驱动对磁盘操作的话,只能这样。
[解决办法]
计算机不是人脑,不会一下就找到那个要该的东西吧
[解决办法]
如果修改前的内容和修改后的内容字节数一样,可以直接覆盖修改:
找到位置后,直接写入新的内容即可。
[解决办法]
首先把文件指针定位到该处,然后覆盖就行了吧。没必要那么麻烦。
[解决办法]
如果只是想替换某一特殊的字符,并且预先知道它的位置,也就是说这个文本文件前后大小都一样,那完全使用"r+"(读写)方式打开,
直接setpos到该位置,fwrite()写入新的字符值。
[解决办法]
你要修改的的是:source="……",修改为:des="……":
1:如果字符串des的长度等于source的长度,那可以直接将文件读写指针定位到source位置,直接写入des就可以了,这样就把source覆盖,起到了修改的目的
2:如果des的长度小于source的长度,需要将des用空格补齐为source的长度,然后形成的des串为: des+" ",然后就和方式1一样了
3:如果des的长度大于source的长度,这时候是不能采用方式1和2的,因为这时候写入会覆盖source之后的内容,对文件造成破坏,这种情况下只能是读取source之前的内容写入新文件,然后写入des的内容,然后再写入source之后的内容
[解决办法]
CFile::begin \ CFile::end \ CFile::current 标志不同的位置,文件的起始位置、文件结束位置、文件指针当前位置,字节为单位。