2014-02-19 61 views
0

的strcmp和標準輸入參數我正在寫一個程序,它取決於什麼的argv [0]對應於 例如某些功能。C:與輸入大小

else if(strcmp(argv[1],"wait") == 0) 

完美的作品,當我輸入「等待2」,它執行位於該if語句的代碼,但如果我嘗試只輸入「等待」 (只有一個參數),它沒有按」不承認它並不去這個功能。 儘管argv [0]匹配'wait',但它爲什麼不起作用?謝謝!

+0

請學會使用你的調試器,它會幫助你非常。 (爲什麼有些白癡投票一切順利?) –

+0

我很確定這個問題不是你所描述的。 – Elazar

+1

建議顯示更多'int main('和'else if(strcmp' – chux

回答

1

argv[0]是可執行文件的名稱。

可能想argv[1]其中(後檢查argc

+0

我不知道爲什麼,但似乎他想要的程序名稱。 'argv [0]'更準確。 – Brian

+0

@Ed Heal對不起,澄清我知道argv [0]調用程序名稱,在我的代碼中,函數strcmp需要argv [1],但出於解釋的目的,我只想用參數'wait'和'2',之前沒有程序名稱。除了等待被叫,(開始,停止)等,我還有其他各種功能,所有這些工作,因爲他們接受參數'停止'和另一個參數,如'3'等。這一個應該只接受'等待',但只適用於更多的參數,如'等''2' – user3295674

1

的argv [0]是你的程序名。您必須改爲輸入argv [1]。

+1

不,這不是他想要的。 – Brian

+1

你在他的腦子裏?他在談論爭論。誰的行爲取決於程序的名字? – Ezo

+0

爲什麼不呢?這是完全合理的。爲什麼你還需要訪問'argv [0]'? – Brian