わかりました、私は次のようにループできることを知っています:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
ただし、この方法では二重引用符が失われます。つまり、文字列"something here"
が args 配列の 1 つの要素として扱われ、引用符が失われます。
パラメータ内にスペースがある場合、引用符を想定できることはわかっていますが、スペースがあるかどうかに関係なく、引用符は常に失われます。
引用符を削除するのはシェルです。シェルに引用符を渡してもらいたい場合は、それらをエスケープする必要があります。
$ ./my-program \"hello\ world\"
1 つの引数にするために、スペースもエスケープしていることに注意してください。
元のコマンド ラインが必要な場合は、 GetCommandLine() API 関数を使用できます。