Я новичок в 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 правильно?
Что я делаю неправильно ? Почему это не будет увеличиваться?
Благодарю .
Кажется, вы используете MSVS (подпись _tmain(int argc, _TCHAR* argv[])
). Если вы запускаете код из IDE, вам нужно указать аргументы в настройках проекта, а не в командной строке.
Запуск из командной строки, как:
test.exe arg1 arg2
также будет работать правильно. То, что вы делаете, не меняет аргументы.
Вызов wcin.get () не влияет на argv или argc. Аргументы указываются в самом начале при запуске программы. Они указываются в командной строке сразу после имени программы, разделенные пробелами.