C 使用fgets删除字符串

C 使用fgets删除字符串,c,C,我有一个普通的文本文件,如下所示: Debdipta 1234567 8 rajat 123432 4 Kaushik 685784 7 djghkvnfj 213122 6 知道在fputs里放什么吗 还有其他代码吗 感谢可能的伪代码解决方案: while(fgets()) { if (!is_string_i_want_to_throw_away()) fputs() } 您遇到的最大问题是,您希望写入与读取的文件相同的文件。这并不容易。在写入临时文件时,从原始文件

我有一个普通的文本文件,如下所示:

Debdipta 1234567 8 rajat 123432 4 Kaushik 685784 7 djghkvnfj 213122 6 知道在fputs里放什么吗

还有其他代码吗


感谢

可能的伪代码解决方案:

while(fgets())
{
    if (!is_string_i_want_to_throw_away())
        fputs()
}

您遇到的最大问题是,您希望写入与读取的文件相同的文件。这并不容易。在写入临时文件时,从原始文件读取要容易得多。完成后,将临时文件重命名(或复制)为原始文件。

您需要以良好的格式存储txt文件,例如在字符串末尾添加分号或任何分隔符,然后您可以轻松检查该分隔符。或者,您可以使用xml或json存储文本文件,甚至更好:将
fgets()
替换为读取2行的
getrecord()
调用,将
fputs()
替换为写入2行的
putrecord()
调用。
fseek(fp, 0, SEEK_SET);
while(!feof(fp))
{
    fgets(strFileMem, MAX_PATH, fp);
    fseek(fp, 0, SEEK_CUR);
    if( NULL == strstr(strName, strFileMem) )
    {
        break;
    }
}
int ierr = fputs(" ", fp);
ierr = fputs(" ", fp);
while(fgets())
{
    if (!is_string_i_want_to_throw_away())
        fputs()
}