2013-07-31 85 views
-1

由于某些原因,当我发送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

输出:

getty.txt

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

shakes.txt:而所有的男人和女人只是玩家。

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

genesis.txt

getty.txt:四个得分87年前,我们的祖先带来了,在这个

getty.txt:大陆,一个新的国家,孕育于自由之中,并热衷于

shakes.txt

+0

你给出的代码不能编译。另请指定输入。 – Oswald

回答

0
ç

返回strcmp 0如果字符串匹配。试试:

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