2017-03-16 5 views
0

whileループを使用してコマンドライン引数を解析するプログラムがあります。単純に、argcの長さを反復しながら、引数が次の引数よりもフラグに一致する場合は、変数として扱われます。今私の割り当てでは、フラグと整数引数の間のスペースがオプションであるようにこれを行うように求められます。コマンドライン引数をスペースなしで解析する

たとえば、私が-k1を入力すると-k1と同じであり、1が格納された値です。 これを可能にするものは何も見つかりません。私が考えることができるのは、argcが偶数の場合、引数のセットの間に仲間がないことを意味し、scanf( "-k%d"、key)を使用できるということです。

私にとって役に立つポインタはありますか?

+0

マッチ ' - '次の文字を取得します。それがオプションフラグです。その文字の後に何かがある場合、残りはオプション値です。コマンドライン引数に 'scanf'を使わないでください。 'main'に渡される標準の' argc'と 'argv'を使います。 – kaylum

+0

'sscanf(argv [arg]、" - %c%d "、&flag、&value)'を試すことができます( 'arg'はチェックしている引数の番号です)、2を返すと、 'flag'と' value'の値... 1を返すと 'flag'にフラグだけがあり、次の引数を読み込んで値を取得できます。それ以外のものが返された場合、引数が一致しないか、エラーが発生しています。これは "-kabc"のようなものを "-k"と同じように扱います。 – Dmitri

+0

@kaylumは、引数が-k 1として入力されたときに機能しますか?または単に-k1 – spaceinvaders101

答えて

関連する問題