0

コマンドラインをパラメーターとして渡す関数呼び出しがあり、次のように定義されています。

process_raw_cmdline(char** line)
{
      //
}

私は最終的にこの行を読み、それを分解して、行の一部を他のパラメータとして使用したいと考えています。この行を取り、スペースで区切られたさまざまな「単語」を保存する良い方法は何でしょうか. 最終的には、この行の一部を整数に変換する必要もあります。

4

1 に答える 1

1

通常、コマンド ラインを char** の形式で取得すると、コマンド ライン上の単一の単語、またはより適切には、単一のエンティティに既に分割されています。

binary-name arg1 arg2 "arg3 arg3" arg4

この例でarg3 arg3は、単一のエンティティです (引用符は取得されません)。

ただし、char** を正しく読み取るには、単語数を知る必要があります。そのため、C プログラムでmain()は、引数 argc (単語数) および argv (char**) を使用して呼び出されます。その後、argv[0] … argv[argc-1] にアクセスできます。この例では:

  • argv[0] ->binary-name
  • argv[1] ->arg1
  • …</li>
于 2013-10-11T00:26:49.400 に答える