2014-02-19 60 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