\nint ascToInt(char []); // Converts ascii strings to ints.\n
In reality, that function does nothing of the sort. It parses the string into integer, but then it checks that the integer is in range, handles the range errors, reads the string again (indirectly) an so on.
How about clearly separating string to integer conversion from reading, validation and error handling? See where that takes you.