我在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”,如果这有助于简化逻辑。
答案 0 :(得分:1)
你基本上是在这里问同样的事情:Delete a Line from a file in C Language,还有这里:deleting a string from a particular position in a file
您必须将文件加载到内存中,然后在那里编辑,然后将其写回磁盘。