[OCLUG-devel] C Error Handling
Chris Berry
chris_berry-list-oclug-devel at jm-associates.com
Wed Jun 15 18:20:47 PDT 2005
Ok, I'm learning a little basic error handling with input strings. The
object is to prompt the user for a positive integer, and make them do it
over again if any other input is entered. Here is what I have right now:
#include <stdio.h>
#define MAXLINE 100
int main (void) {
char line[MAXLINE];
int error, n;
do {
printf ("Input a positive integer: ");
fgets (line, MAXLINE, stdin);
if (sscanf (line, "%[0-9]", &n) == 1) {
error = 0;
}
else error = 1;
if (error) printf ("\nERROR: Do it again.\n");
}
while (error);
return 0;
}
This works correctly for the following inputs:
3
-3
e
e3
but not for:
3e
Which it sees as valid input. I think the problem is that it quits as
soon as it sees the invalid character, but I haven't quite been able to
wrap my ahead around how to get it to keep looking without creating an
infinite loop. Tried a few different things and looked on google but I
think I'm not looking at it right yet. Can someone give me a hint?
--
Chris Berry
chris_berry at jm-associates.com
Information Advisory Manager
JM Associates
"There is nothing so useless as doing efficiently that which should not
be done at all." --Peter Drucker
More information about the OCLUG-devel
mailing list