出于某种原因,当我发送 argv 时,它会发回错误的文件指针。例如,如果我从 getty.txt 的 argv 发送字符串,它会发回抖动文件指针,如果我发送 genesis.txt 字符数组,它会发回 getty.txt。如何让它发回正确的文件指针?
for (i = 3; i < argc; i++) {
printf("%s\n", argv[i]);
pattern(determineFile(argv[i]), argv[2]);
}
FILE* determineFile(char* file) {
if (strcmp(file,"getty.txt"))
return getty;
else if (strcmp(file, "shakes.txt"))
return shakes;
else if (strcmp(file, "genesis.txt"))
return genesis;
else
return NULL;
}
输入:
grep getty.txt genesis.txt shakes.txt
输出:
盖蒂.txt
Shakes.txt:所有的词都是一个舞台,
Shakes.txt:所有的男人和女人都只是球员。
Shakes.txt:他们有自己的出口和入口;
创世纪.txt
getty.txt:四分,七年前,我们的父亲在此生下
getty.txt:大陆,一个新的国家,在自由中孕育,并致力于
震动.txt