使用 getopt 时,是否有一种内置方法可以使参数依赖于另一个参数?例如,我设置了开关盒,一切正常,但在读取文本文件 (-i) 之前,我需要我的 -m 参数(马尔可夫链的长度)。
换句话说,我想确保在处理我的输入 arg 时没有设置其他参数。
小摘录:
while ((opt = getopt_long(argc, argv, "i:shm:", long_options, &option_index))
!= -1)
{
switch (opt) {
case 'i':
inputEnglish.ReadFile((string)optarg);
break;
case 'm':
inputEnglish.setMarkovLength(atoi(optarg));
break;
case 's':
break;
case 'h':
printHelp();
break;
case '?':
cout << "dfgdfgdf" << endl;
return 0;
break;
default:
printHelp();
return 0;
break;
}
}
如果没有任何内置方法,您是否有一种干净的方法来执行此操作?干净的代码在这里比效率更重要。感谢您的任何帮助!