次のコードは、1つの文字の時にテキストファイルを読み込み、標準出力にそれを印刷:検索
#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);
}
しかし、その代わりに印刷をstdoutに[のputchar(CH)]私がしたいです別のテキストファイルで提供されている特定の文字列、すなわちファイルを検索します。 strings.txt出力
text_file.txt
をout.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
の3つの第1行は一致します。私はCでのファイル操作に関するいくつかの研究を行ってきましたが、fgetc
(私のコードのように)、1行にfgets
、1ブロックにfread
という文字を読むことができます私の状況で完璧だろうか?
なぜあなたはこのプログラムを書いています!これを行うには、grep/awk/sedを使用してください。 –
いいえ、Tim。タグは検索用です。誰もそれを探すつもりはない。 – GManNickG
はい、私はこれを数秒で解決できる標準のUnixツールを知っていますが、これはCファイルIOの深い理解を得ることです。 –