getopt を使用するときに引数を別の引数に依存させる組み込みの方法はありますか? たとえば、switch case のセットアップがあり、すべて正常に動作しますが、テキスト ファイル (-i) を読み取る前に -m 引数 (マルコフ チェーンの長さ) が必要です。
つまり、入力引数を処理するときに他の引数が設定されていないことを確認したいと思います。
小さな抜粋:
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;
}
}
組み込みの方法がない場合、これを行うためのクリーンな方法はありますか? ここでは、効率よりもきれいなコードが重要です。助けてくれてありがとう!