Я получаю сообщение об ошибке при использовании неверного ввода или флага -help
в аргументах команды. Это пересоздание утилиты Unix expand
, и она должна обрабатывать ошибки аналогичным образом.
int main(int argc, char *argv[]){
char help1[]= "-help";
char help2[]= "--help";
int spaces; //number of spaces to replace tabs
if (argc==1){ //if only one argument in stack
//check if asking for help
if ( (strcmp(argv[1], help1)==0) || (strcmp(argv[1], help2)==0) )
printHelp();
else
printError(); //otherwise, print error message
//right number of tokens are provided, need to validate them
} else if (argc>=2){
spaces= atoi(argv[2]); //assign it to spaces
parse_file(spaces); //open the stream and pass on
}
return 0;
}
Мой метод принтера:
void printError(){
fprintf(stderr, "\nInvalid Input.\n");
fprintf(stderr, "The proper format is myexpand -[OPTION] [NUMBER OF SPACES]\n");
exit(1);
}
Когда я пытаюсь ввести неверный ввод или флаг справки, я получаю сообщение об ошибке. Почему, так как я проверяю, является ли первый флаг справкой?