1

私はC ++が初めてで、それがどのように機能するかを理解しようとしています。だから私は次のコードを持っています:

int _tmain(int argc, _TCHAR* argv[])
{
std::wcin.get();//for console window input
int i=1;
    // decode arguments
    if(argc < 2) {
        printf("You must provide at least one argument\n");
        exit(0);
    }
    // report settings
    for (;i<argc;i++) printf("Argument %d:%s\n",i,argv[i]);

return 0;
}

argc と argv がどのように機能するかを見るため。しかし、コンソールに入力した引数の数に関係なく、argcは増加しません。1 のままです。argv[0] がプログラム名であることはわかっています。私の入力は、「aaa bbb ccc ddd」のようなものです。私はこの argc が 5 であると信じています。私は何を間違っていますか?なぜ増加しないのですか?

ありがとう 。

4

2 に答える 2

5

MSVS (署名は ) を使用しているようです_tmain(int argc, _TCHAR* argv[])。IDE からコードを実行している場合は、コマンド ラインではなく、プロジェクト設定で引数を指定する必要があります。

ここに画像の説明を入力

次のようなコマンドラインから実行します。

test.exe arg1 arg2

も正しく動作します。あなたがしていることは、引数を変更しません。

于 2012-09-26T15:21:24.493 に答える
2

wcin.get() を呼び出しても、argv または argc には影響しません。引数は、プログラムの起動時に最初に指定されます。これらは、コマンド ラインで、プログラム名の直後にスペースで区切って指定します。

于 2012-09-26T15:21:40.793 に答える