Попытка написать функцию, которая будет проверять agr c == 2, argv [1] не отрицателен, а в argv [1] есть только цифры, иначе основная программа просто не запустится, и мы введем что-то вроде «Ошибка! Использование» : ./code key "Таким образом, если мы введем ./code -1 или ./code 123 gdf или ./code 123sdf, мы столкнемся с сообщением об ошибке, и основная программа не будет работать, но если мы введем ./code 123, то мы хороши, и программа будет работать далее.
int validkey(int argc, string y)
{
int yl = strlen(y);
if (argc == 2 && atoi(y) > 0) //atoi coverts string into int
{
for (int i = 0; i < yl; i++)
{
if (isdigit(y[i]))
{
printf("we good\n");
return 0;
}
else
{
printf("Usage: ./code key\n");
return 1;
}
}
}
else
{
printf("Usage: ./code key\n");
return 1;
}
return 0;
}
, поэтому в основной программе мы имеем что-то вроде этого if (validkey(argc,argv[1]))
и основной код продолжается. Но эта функция не работает ВСЕ, она не нарушает основной код, независимо от того, что мы печатаем (возвращаем 1; стоит ли его тормозить?), И если мы введем ./code 123ads, она пройдет проверку и вернет 0; Что я сделал не так?