Аргументы командной строки не увеличиваются в argc

Я новичок в 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 правильно?
Что я делаю неправильно ? Почему это не будет увеличиваться?

Благодарю .

1

Решение

Кажется, вы используете MSVS (подпись _tmain(int argc, _TCHAR* argv[])). Если вы запускаете код из IDE, вам нужно указать аргументы в настройках проекта, а не в командной строке.

введите описание изображения здесь

Запуск из командной строки, как:

test.exe arg1 arg2

также будет работать правильно. То, что вы делаете, не меняет аргументы.

5

Другие решения

Вызов wcin.get () не влияет на argv или argc. Аргументы указываются в самом начале при запуске программы. Они указываются в командной строке сразу после имени программы, разделенные пробелами.

2