下面的代码逐个字符读取文本文件并将其打印到标准输出:
但我想要的不是像 putchar(ch) 一样输出到 stdout,而是在文件中查找另一个文本文件 strings.txt 中提供的特定字符串,并将匹配的行输出到 out.txt。
text_file.txt:
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt:
Nehalem AMD Athlon Pentium
在这种情况下,text_file.txt 的前三行将匹配。我已经对 C 中的文件操作进行了一些研究,似乎可以使用 fgetc(就像在我的代码中所做的那样)逐个字符读取,使用 fgets 一次读取一行,使用 fread 一次读取一个块,但在我看来,在我这种情况下完美的方法应该是按单词读取?
#include <stdio.h>
int main()
{
char file_to_open[] = "text_file.txt", ch;
FILE *file_ptr;
if((file_ptr = fopen(file_to_open, "r")) != NULL)
{
while((ch = fgetc(file_ptr)) != EOF)
{
putchar(ch);
}
}
else
{
printf("Could not open %s\n", file_to_open);
return 1;
}
return(0);
}
但我想要的不是像 putchar(ch) 一样输出到 stdout,而是在文件中查找另一个文本文件 strings.txt 中提供的特定字符串,并将匹配的行输出到 out.txt。
text_file.txt:
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt:
Nehalem AMD Athlon Pentium
在这种情况下,text_file.txt 的前三行将匹配。我已经对 C 中的文件操作进行了一些研究,似乎可以使用 fgetc(就像在我的代码中所做的那样)逐个字符读取,使用 fgets 一次读取一行,使用 fread 一次读取一个块,但在我看来,在我这种情况下完美的方法应该是按单词读取?