从文件中删除字符串

时间:2012-11-26 01:11:45

标签: c string file

我在C编码。我有以下文件ui.txt

user1 | 127.0.1.1
user2 | 127.0.1.1
user3 | 127.0.1.1

如果我有一个字符串str是“user2”,我需要在ui.txt中找到具有str的行,并删除该行以便我得到

user1 | 127.0.1.1
user3 | 127.0.1.1

我打开了这样的文件:

FILE *fp;
fp = fopen("ui.txt","a+");

我用+打开它,因为任何时候我必须输入新信息,说另一个用户和他们的IP地址,我把它附加到文件的末尾。

我该如何解决这个问题?是否需要使用fgetc或fgets?到目前为止我一直在使用fgets。请给我完整的代码。

P.S。 str也可以是“user2 | 127.0.1.1”,如果这有助于简化逻辑。

1 个答案:

答案 0 :(得分:1)

你基本上是在这里问同样的事情:Delete a Line from a file in C Language,还有这里:deleting a string from a particular position in a file

您必须将文件加载到内存中,然后在那里编辑,然后将其写回磁盘。