Передача аргументов через main — проверка, чтобы убедиться, что действительный ввод

Я пытаюсь передать аргументы через main, которая работает нормально, затем я проверяю, содержит ли переданный аргумент правильный формат / значение. Однако, даже если я укажу правильный формат, он все равно покажет, что что-то не так, вот код:

int main(int argc, char* argv[]) {

/* Check if arguments are being passed through */

if(argc == 1){
cout << endl << "--- ERROR ---" << endl;
exit(0);
}

/* Check if the first argument contains the correct data */
string file_name = argv[1];

/* Handle operation */

string operation = argv[2];

if(operation != "-t" || operation != "-r")
{
cout << "Something is not right";
}

}

Если я сделаю: cout << operation; тогда результат будет: -t при прохождении -t через когда я запускаю приложения.

Кто-нибудь может подсказать, где я могу пойти не так?

ОБНОВИТЬ:

Я передам эти аргументы:

./main something.wav -t

Я ожидаю заявления if:

if(operation != "-t" || operation != "-r")
{
cout << "Something is not right";
}

Чтобы вернуть отрицательное значение, поскольку введенное мной значение равно -t

-2

Решение

if(operation != "-t" || operation != "-r")
{
cout << "Something is not right";
}

Какой бы ни была операция, она должна быть либо не равна «-t», либо не равна «-r», так что это будет всегда печать «Что-то не так».

Я ожидаю заявления if:
Чтобы вернуть отрицательное значение, поскольку введенное мной значение равно -t

Вторая половина ИЛИ верна. ИЛИ истинно, если первая половина ИЛИ вторая половина истинна. Ты хочешь ((operation != "-t") && (operation != "-r")), Таким образом, if будет срабатывать только если ввод не -t а также это также не -r.

5

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

Других решений пока нет …

По вопросам рекламы [email protected]