homework-00: Comment code

This commit is contained in:
Tomáš Kléger 2025-10-05 21:56:30 +02:00
parent 181a0f3dcd
commit a1bac88d7d

View File

@ -29,16 +29,24 @@ int main() {
printf("%s\n", PROMPT); printf("%s\n", PROMPT);
// Use getline for dynamic allocation
ssize_t chars_read = getline(&buf, &len, stdin); ssize_t chars_read = getline(&buf, &len, stdin);
errno = 0; errno = 0;
long input = strtol(buf, &end, 10); long input = strtol(buf, &end, 10);
// Check whether a range error occured or
// No characters were read by getline
// or check that strtol didnt move a single char
if(errno == ERANGE || chars_read == -1 || end == &buf[0]) { if(errno == ERANGE || chars_read == -1 || end == &buf[0]) {
printf("%s\n", NOT_A_NUMBER); printf("%s\n", NOT_A_NUMBER);
return EXIT_FAILURE; return EXIT_FAILURE;
} }
// getline always adds the \n to the result string
// If the ending char by strtol is not that newline
// It means the string is not a whole number
// (e.g. 12abc, 1.23)
if(*end != '\n') { if(*end != '\n') {
printf("%s\n", INVALID_NUMBER); printf("%s\n", INVALID_NUMBER);
return EXIT_FAILURE; return EXIT_FAILURE;