当您使用fopen打开.txt文件时是否有任何方法可以删除文件中的某些字符串而无需重写.
例如,这是我将用fopen()打开的txt文件;
-------------
1 some string
2 SOME string
3 some STRING
-------------
Run Code Online (Sandbox Code Playgroud)
我想删除第一个字符为2的行并将其更改为
-------------
1 some string
3 some STRING
-------------
Run Code Online (Sandbox Code Playgroud)
我的解决方案是; 首先读取所有数据并将它们保存在字符串变量中.然后使用w模式打开相同的文件.并且除了第2行之外再次写入数据.(但这不合逻辑我在C中寻找更简单的方法...)(我希望我的英语不是问题)
最简单的方法可能是使用mmap对整个文件进行内存映射.使用mmap,您可以将文件作为长内存缓冲区进行访问,您可以使用磁盘上反映的更改进行修改.然后,您可以找到该行的偏移量,并移动文件的整个尾部,返回许多字节以覆盖该行.