2013-07-31 111 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) {/* ... */}