回答
没有简单的方法。你已经手动完成了。例如:
- 阅读你想之前插入到内存块
- 寻求着新的位置
- 写块你刚才读的新位置
- 寻求回到你想插入
- 写入新数据。
谢谢!所以我必须使用“fopen(”1.txt“,”w“);”然后fseek? :)据我所知,对于我的问题,答案是肯定的。 – 2010-03-12 07:24:45
@Infinity:使用'fopen(“1.txt”,“r +”)'打开阅读*和*写作。模式'“w”覆盖之前可能存在的任何文件,留下一个空文件。 – 2010-03-12 07:25:34
好的,谢谢:) – 2010-03-12 07:29:40
使用fseek函数将文件指针移动到文件的相应位置,然后您可以在那里执行写操作。但是,为此,您应该知道从文件末尾开始有多少个字节,或者您想要写入的首选区域的起始位置。
也谢谢你。 – 2010-03-12 07:25:01
正如其他人已经告诉过你的,你必须手动完成,并使用fseek来到你必须插入或添加字符的地方。您可以通过执行以下操作轻松地在中间添加新字符:
- 转到文件的最后一个字节,并存储文件的旧文件大小。
- 转到你想要插入新字符的位置(说这是位置):fread(旧文件大小 - 位置)字节,并将它们存储在缓冲区中。
- fseek再次定位。
- fwrite你的新角色。
- fwrite您先前读取的缓冲区。
如果你想删除中间的字符,那么这是更棘手的。其实你不能缩短文件。你有两种可能性:在第一个,你刚才
- 打开文件和读取文件跳过字符要删除,并将它们存储在缓冲区
- 关闭并重新打开该文件“b”,所以其内容被删除,
- 写入缓冲区并关闭文件。
在第二个可能性,您:
- 读取到未来要删除的那些的缓冲字符。
- fseek以你想删除的字符开头
- fwrite缓冲区。
- 修剪文件的其余部分。
第四点是“棘手”,因为没有标准(便携)的方式来做到这一点。一种可能是使用操作系统系统调用来截断文件。另一种更简单的可能性是在第4点将EOF写入文件。该文件可能会大于它应该是的,但它会起作用。
非常感谢你,我想你对此有更多的了解。我们可以在别的地方谈谈这个吗? – 2010-03-13 17:22:40
我对搜索文件中文本位置的主题感兴趣。也许有一个好方法,还是我必须由charachter测试charachter? – 2010-03-13 17:27:03
在文本文件中搜索是的,基本上是逐字测试的问题。但是,这是另一个完全不同的主题:例如,您可以获得正则表达式的帮助。 – Baltasarq 2010-03-15 09:17:39
考虑到Baltasarq发布了什么,我写了以下几行。你需要知道的位置,你要插入
long Fin;
long lSize;
fseek(fd, 0L, SEEK_END);
Fin = ftell(fd);//I get the old file size
fseek(fd, position, SEEK_SET);//you should have declared and initialized "position"
char * buffer;
lSize = Fin - position;//lenght from where you want to insert the chars and the eof
buffer = (char*) malloc(sizeof(char) * lSize);
size_t result = fread(buffer, 1, lSize, fd);//fread (Fin - position) into buffer
fseek(fd, position, SEEK_SET);//fseek to position
fputs(word, fd);//you should know what you want to write (word) and it is a char pointer
fputs(buffer, fd);//fwrite the buffer
我实际使用的代码(一些修改后)一式三份包含每个元音,在给定的文件的话字符。
- 1. 如何在VB.net中删除一些字符串中的数字?
- 2. 如何从bash中的字符串中删除一些文本?
- 3. 如何删除UNIX中某些文件中的字符?
- 4. 如何从C#字符串中删除一些字符?
- 5. 如何从文件中删除“^ @”字符?
- 6. 如何删除字符串C#之间的一些文字
- 7. 如何在文本文件中插入/删除单词?
- 8. PHP在字符串之前和之后插入一些文本
- 9. 如何从文件中删除一行使用awk过滤某些字符串
- 10. 如何在tkinter中插入一些指定的字符输入小部件
- 11. 如何在txt文件的每行中插入一个字符
- 12. 如何在删除c字符串时删除这些警告
- 13. 如何在UITableView中同时插入和删除一行
- 14. 如何从java中的字符串中删除一些单词
- 15. 如何删除某些字符字符串在Excel
- 16. 如何从URL字符串中删除一些参数?
- 17. 如何从字符串中删除一些空格?
- 18. 如何从BIG HTML字符串中删除一些标签?
- 19. 如何在Perl字符串中插入文字\ t和\ n?
- 20. JS - 在JSON文件中插入,删除和添加数据
- 21. 在Matlab中写入文件时从EOF中删除字符
- 22. 从插入的字符串中删除特殊字符?
- 23. C#删除一些字符串
- 24. 为什么@ Html.Label()删除一些字符
- 25. 一些字符用fwrite删除
- 26. 如何在文件的第一行插入新行字符(\ n)?
- 27. 删除除一些特殊字符以外的所有字符
- 28. 如何将一些数据插入到AppleScript字符串中
- 29. 如何在Java中插入,替换和删除文件的区域?
- 30. 从字符串中删除一些字符
建议使用插入的数据创建新文件。完成后,重命名并删除原件。 – chux 2015-02-25 19:26:18