0

我正在用 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+");

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

我该怎么做?它是否需要使用 fgetc 或 fgets?到目前为止,我一直在使用 fgets。请给我完整的代码。

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

4

1 回答 1

1

您本质上是在问与此处相同的问题:Delete a Line from a file in C Language,以及此处:从文件中的特定位置删除字符串

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

于 2012-11-26T01:17:11.703 回答