2015-07-19 59 views
0

我試圖寫一個程序,將在多個輸入,這是我的代碼C++的getopt和OPTARG不能採取在多個輸入

int main (int argc,char *argv[]) 
    { 
    char tmp; 

    while((tmp=getopt(argc,argv,"e:d"))!=-1) 
    { 
     switch(tmp) 
     { 

     case 'e': 
     cout<<"Your name is "<< optarg <<endl; 
      break; 

     case 'd': 
      cout<<"Your password is "<< optarg <<endl; 
      break; 

     default: 
      cout << "to be done later" << endl; 
     break; 
     } 
    } 
    return 0; 
    } 

我試圖運行這個程序是這樣

一個-e第一第二

,結果我得到的是

你的名字是第一

是有可能使這樣我可以得到不使用-e兩倍以下輸出?

你的名字是第一次

你的名字是第二

提前感謝!

+0

'a -e first -e second'? – melpomene

回答

0

使用a -e first -e second執行程序。

+0

thx求救!但可以運行它而不使用-e兩次? – 1cyf1r3

+1

您可以將'first second'作爲單個參數傳遞給程序。爲此,它通常被引號括起來:「a -e」第一秒「,細節取決於你啓動程序的shell。 – Oswald