返回错误的文件指针

时间:2013-07-31 04:42:52

标签: file-io char

由于某些原因,当我发送argv时,它会发回错误的文件指针。例如,如果我从getty.txt的argv发送字符串,它会发送回shakes文件指针,如果我发送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

输出:

  

getty.txt

     

shakes.txt:所有单词都是一个舞台,

     

shakes.txt:所有的男人和女人都只是球员。

     

shakes.txt:他们有出口和入口;

     

genesis.txt

     

getty.txt:四年前和七年前我们的父亲带来了这个

     

getty.txt:大陆,一个新的国家,在自由中孕育,并致力于

     

shakes.txt

1 个答案:

答案 0 :(得分:0)

如果字符串匹配,则C strcmp返回0。尝试:

if(strcmp(a, b) == 0) {/* ... */}