char pass = "password";
Вы пытаетесь назначить строку для char
.Это не сработает!Вместо этого вам нужно объявить pass
как char[]
следующим образом:
char pass[] = "password";
Следующая проблема:
if(argc == pass)
argc
- количество переданных аргументов командной строкик вашей программе (включая имя программы в качестве первого).То, что вы хотите, это argv
, который содержит фактические аргументы.В частности, вы, вероятно, хотите argv[1]
.
Вы не можете просто пойти argv[1] == pass
, поскольку это сравнивает расположение двух строк.Для сравнения строк необходимо использовать strcmp()
.Эта функция сравнивает две строки и возвращает 0, если они равны (есть веская причина для этого, но пока оставим это).Первый - это как сравнивать два дома, проверяя, имеют ли они одинаковый адрес улицы;последнее похоже на сравнение домов друг с другом по кирпичику.(отрывок из @caf)
Таким образом, строка становится такой:
if (strcmp(argv[1], pass) == 0)
Соедините эти исправления вместе, и это должно работать.Пожалуйста, также работайте над улучшением отступа вашего кода.Через несколько недель это станет намного проще для чтения, не только для других, но и для вас.