需求:使用命令行传参,第一个参数为字符串,第二个参数为文件名,判断文件中哪些行包含该字符串并打印
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 256
int main(int argc, char *argv[])
{
FILE * fp;
char str[SIZE];
// 简单校验参数
if(argc != 3)
{
fprintf(stderr ,"命令行参数有误");
exit(EXIT_FAILURE);
}
// 判断文件是否成功打开
if((fp = fopen(argv[2], "r")) == NULL)
{
fprintf(stderr, "文件打开错误");
exit(EXIT_FAILURE);
}
// 读取每行内容至str中
while(fgets(str, SIZE, fp))
{
// 判断str中是否包含参数输入字符串
if(strstr(str, argv[1]))
{
fputs(str, stdout);
}
}
fclose(fp);
return 0;
}