c ++ getopt和optarg不能接受多个输入

时间:2015-07-19 11:23:26

标签: c++ getopt

我正在尝试编写一个程序,它将接受多个输入,这是我的代码

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;
  }

我试图像这样运行这个程序

  

a -e first second

我得到的结果是

  

你的名字是第一个

是否可以使得我可以在不使用-e两次的情况下获得以下输出?

  

你的名字是第一个

     

你的名字是第二个

提前致谢!

1 个答案:

答案 0 :(得分:0)

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