У вас есть несколько ошибок:
1) Вы не можете сравнивать строки C-стиля (символьные массивы) с помощью оператора ==. argv[#]
- массив символов, равно _T("some value")
. Чтобы сравнить их, вам необходимо использовать strcmp
(или один из его двоюродных братьев) или сохранить его в std::string
.
2) Вы пытаетесь получить доступ к 2-му элементу массива, но существует только один элемент. вы сказали, что ничего не передаете на вызов, то есть argv[0]
будет содержать данные (имя исполняемого файла, который вы используете), но argv[1]
не будет. В общем случае попытка доступа к нему будет пытаться получить доступ к данным вне диапазона массива с неопределенными результатами. В этом конкретном случае стандарт (раздел 3.6.2) утверждает, что он всегда будет 0 (иначе NULL). Таким образом, ваше условие всегда будет ложным.
3) Вы должны ВСЕГДА проверять значение argc
, если ожидаются параметры командной строки.
Вы должны использовать '<< std :: endl' после написания вашего вывода, чтобы гарантировать сброс' std :: cout' BTW. –