C言語でファイル内容を検索する方法
C言語でファイルの中身を検索するには、以下の手順で検索できます。
- ファイルを開く:fopen() 関数を使用して検索するファイルを開き、FILE *fp などの変数にファイルポインターを代入します。ファイルをオープンするときは、オープン方法(読み取り、書き込み、追加など)とファイルパスの指定が必要です。
- ファイルの内容を読み込む: fgets() 関数または fread() 関数を使用してファイルから内容を読み込み、バッファに格納します。
- 読み込んだ内容の各行やまとまりに対して、文字列処理関数(strstr()など)を利用して、指定した内容が含まれているか検索する。一致する内容が見つかれば、それに応じた処理を行う。
- ファイルのクローズ:fclose() 関数を使用してファイルを閉じ、リソースを解放します。
下記に、ファイル内容を検索して一致する行を出力する方法の簡単な例を示します。
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp;
char filename[100], search[100], line[100];
printf("Enter the filename: ");
scanf("%s", filename);
printf("Enter the search term: ");
scanf("%s", search);
// 打开文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening the file.\n");
return 1;
}
// 逐行读取文件内容并搜索指定内容
while (fgets(line, sizeof(line), fp) != NULL) {
if (strstr(line, search) != NULL) {
printf("%s", line); // 输出匹配的行
}
}
// 关闭文件
fclose(fp);
return 0;
}
上記の例では、ユーザーは検索するファイル名と検索文字を入力する必要があり、プログラムはそのファイルの各行を順番に検索して一致する内容を検索し、一致する行を画面に出力します。