そのため、va_list を使用してコマンドライン引数を繰り返し処理できればよいのにと思いました。どこかでそれが行われているのを見たことがあると思います。
私は役に立たずにグーグルを試みました。
これを達成する方法を知っている人、または達成できるかどうか知っている人はいますか?
そのため、va_list を使用してコマンドライン引数を繰り返し処理できればよいのにと思いました。どこかでそれが行われているのを見たことがあると思います。
私は役に立たずにグーグルを試みました。
これを達成する方法を知っている人、または達成できるかどうか知っている人はいますか?
できません。va_list
varargs 関数に適用されますが、そうでmain
はありません。ただし、私が知りたいのは、なぜこれを好むのかということです (可能であれば):
char *arg;
va_list vl;
va_start(vl, argc);
while ((arg = va_arg(vl, char*)))
// use arg
va_end(vl);
これに:
for (int i = 0; i < argc; ++i)
// use argv[i]
またはこれ:
for (char **arg = argv; *arg; ++arg)
// use *arg
http://www.cplusplus.com/reference/clibrary/cstdarg/va_start/
これは、特にコマンド ライン引数には適用されません。