Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Вопрос с проблемами if () {} в C++

Есть такая функция

12345678910111213141516171819202122232425
 bool ArgumentsParser(int argc, char* argv[]) { 
	System::print(_("Parsing arguments..."), " "); 
	int exitc = -1; 
	if (argc > 1) { 
		for (int i = 0; i < argc; i++) { 
			try { 
				string arg = argv[i]; 
				System::print(arg.substr(0, 15)); 
				if (arg.substr(0, 10) == "--graphics") { Graphics(); } 
				else if (arg.substr(0, 9) == "--autorun") { Autorun(); } 
				 
				else if (arg.substr(0, 15) == "--autorun-file=") { json::change_member(json::LoadedFilesJson, "AUTORUN", cutestring(arg, 15)); exitc = 1; System::fmLogger.log(_("Changed autorun file.")); } 
				else if (arg.substr(0, 14) == "--autorun-file") { json::change_member(json::LoadedFilesJson, "AUTORUN", argv[i + 1]); exitc = 1; System::fmLogger.log(_("Changed autorun file.")); } 
				else if (arg.substr(0, 16) == "--import-config=") { json::Config = json::open_json(cutestring(arg, 16)); exitc = 1; System::fmLogger.log(_("Import custom config.")); } 
				else if (arg.substr(0, 15) == "--import-config") { json::Config = json::open_json(argv[i + 1]); exitc = 1; System::fmLogger.log(_("Import custom config.")); } 
 
				else { exitc = 1; } 
			} 
			catch (...) {} 
		}  
		if (exitc == -1) { exitc = 0; } 
	} else { exitc = 1; } 
	System::print(_("Done"), "\r"); 
	return exitc; 
} 

argv[1] это "--autorun-file=file.ars".
Проблема заключается в том что я обрезаю строку, через принт вижу что она равна "--autorun-file=", но почему то не проходит проверка if

cutestring(string, int) была объявлена в другим файле и обрезает начало строки

Что делать, всю голову сломал уже.

По дате
По рейтингу
Аватар пользователя
Просветленный
11мес

Потому что её перебивает эта строчка:
else if (arg.substr(0, 9) == "--autorun") { Autorun(); }