Я использую затмение. Я объявил #define OUTPUT_FLAG "-o" и тогда у меня есть главное: int main(int argc, char **argv) после этого пишу:
#define OUTPUT_FLAG "-o"
int main(int argc, char **argv)
for (int i = 1; i < argc; i+=2) { if(argv[i]==INPUT_FLAG) { cout<<"input flag\n"; input_file=argv[i+1]; } }
и там я получаю ошибку по теме. Вы можете помочь мне здесь? Спасибо
Вы не можете сравнивать строки с == в C ++. Вы должны либо использовать strcmp, либо преобразовать их в std::string s , а затем использовать оператор ==. То есть либо:
==
strcmp
std::string
if (!strcmp(argv[i], INPUT_FLAG))
или
if (std::string(argv[i]) == INPUT_FLAG)
Вы не можете сравнивать строки C (char *), используя оператор ==, поскольку этот оператор проверяет только равенство указателей (вместо разыменования указателя и сравнения каждого символа по одному).Используйте strcmp() или преобразуйте строку в argv[] в тип C ++ string.
char *
strcmp()
argv[]
string