从包含输入单词的文件中删除一行

Removing a line from file that contains an inputted word

我一直在尝试使用 C 删除文件 (.txt) 中的整行,其中一行包含数字(例如“1234”)。数字是通过 scanf 输入给出的。

注意该行包含空格,例如:Bob 1234 Apple Tree

我想知道是否有人可以向我解释一个有效的方法。

谢谢。

希望这对您有所帮助:

char *in_file, *out_file, line[255];
FILE *fp1, *fp2;

in_file  = "input.txt";
out_file = "output.txt";

fp1 = fopen( in_file, "r" );
fp2 = fopen( out_file, "w" );

while ( fgets( line, sizeof( line ), fp1 ) != NULL ) {
  if ( strstr( line, "1234" ) ) {
     fputs( line, fp2 );
  }
}

fclose( fp2 );
fclose( fp1 );