C言語初心者です。
現在、課題で
『指定された文字列をファイル内から検索し、見つかった行をコンソールに表示する』
というプログラムを作成中です。
自分なりに調べ簡単なコードで出来たと思ったのですが
【検索文字列は『プログラムの引数』にする事】
【何度でも検索→表示ができる事】
という条件を追加されました。
意味が分からず手が止まってしまい、進めません。
読み込むファイルはテキストファイル、ツールはVisual Studio 2017 です。
現時点のソースを載せますので、良ければどなたかご教授願います。
出来ればソースを書いて頂けると嬉しいです。宜しくお願い致します。
#include "pch.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable : 4996)
#define BIT_SIZE 256 // バイトサイズ
#define KEY_SIZE 100 // 検索文字数
int main(void)
{
FILE *fp; // ファイルポインタ
int line = 1; // 読み込んだ行数
char path[100]; // 入力ファイルのパス
char buf[BIT_SIZE]; // サイズ
char key[KEY_SIZE + 1]; // 検索文字列
//static const char FILE_NAME[] = "D:test.txt"; // ファイル名
printf("検索するファイル名を入力せよ→");
scanf("%s%*c", path);
if ((fp = fopen(path,"r")) == NULL)
{
printf("Error: %s このファイルは開けない。\n", path);
return 1;
}
printf("検索する文字列を入力せよ→");
scanf("%s", key);
while (fgets(buf, sizeof(buf), fp) != NULL)
{
if (strstr(buf, key) != NULL)
{
printf("%d行目: %s", line, buf);
}
line++;
}
fclose(fp);
return 0;
}
[code]