diff --git a/head.c b/head.c index 76bd33d..5b57d1b 100755 --- a/head.c +++ b/head.c @@ -4,8 +4,6 @@ #include #include -int stoi_mini(char * str); - int main(int argc, char *argv[]) { FILE * current_input_file; int i = 1, j = 0; char c; @@ -15,14 +13,13 @@ int main(int argc, char *argv[]) { int error_occurred; - - if(argv[i][0] == '-') { - if(argv[i][1] == 'n') { - i++; - chars_copy = stoi_mini(argv[i]); - i++; + while((c = getopt(argc, argv, "n:")) != -1) { + if(c == 'n') { + chars_copy = atoi(optarg); } } + + i = optind; if(argc - i > 1) { print_head = 1; @@ -65,27 +62,4 @@ int main(int argc, char *argv[]) { else { return 0; } -} - -int stoi_mini(char * str) { - int i, str_int = 0; - - for(i = 0; str[i] != '\0' && str[i] != ','; i++) { - str_int *= 10; - switch(str[i]) { - case '0': str_int += 0; break; - case '1': str_int += 1; break; - case '2': str_int += 2; break; - case '3': str_int += 3; break; - case '4': str_int += 4; break; - case '5': str_int += 5; break; - case '6': str_int += 6; break; - case '7': str_int += 7; break; - case '8': str_int += 8; break; - case '9': str_int += 9; break; - default: return -1; - } - } - - return str_int; -} +} \ No newline at end of file