3

両方の機能を知りました。それらの使用法を学ぶためにインターネットを検索しています。コマンド ライン オプションの入力を解析するために非常に重要なことが 1 つ見つかりましたが、説明されていません。

そのような場合、重複したオプションが入力された場合、両方の関数はそれを処理するために何もできません。これに使用するlib関数があるかどうか疑問に思っていました。

自分で処理する必要がある場合。私の考えでは、短いオプションを配列に収集し、配列内で同一のものを見つけることです。

それを行うより良い方法はありますか?

4

1 に答える 1

2

重複するオプションで何か特別なことをしたい場合は、オプション処理コードで状態を管理できます。

のようなもの-v|--verboseを繰り返して冗長性を高めることができ、速度処理コードは次のようになります。

// initialize
int verbose_level=0

// in the getopt case for -v
  verbose_level++;

(すべて使用する必要のある引数で繰り返すことができるオプションについては、リストなどをロードしてください)。

リピートで特別なことをしたくない場合は、毎回値を設定してください

  // in the case
  verbose_level = 1;

繰り返しを検出したい場合

  // in the case
  if (verbose_level) {
   // handle this case as an error...
}
于 2010-11-30T00:16:38.600 に答える