/* * Example of scanf * This program has a bug (can you find it?) * * Matt Bishop, ECS 36A * * April 22, 2024 * first version */ #include <stdio.h> /* * and we're off! */ int main(void) { int xint; /* for reading an integer */ float yfloat; /* for reading a floating point number */ int retval; /* return value from scanf */ int c; /* used to eat rest of line */ /* * loop until asked to quit */ do{ /* prompt for input */ printf("> "); /* see if they entered an int and a float */ if ((retval = scanf("%d %f", &xint, &yfloat)) == 2) printf("Got %d %f\n", xint, yfloat); /* nope -- see if it is an integer follow ed by "xxx" */ else if ((retval = scanf("%d xxx", &xint)) == 1) printf("Got %d\n", xint); else /* nope -- report it */ printf("Didn't get anything\n"); /* print what scanf returned */ printf("RETVAL = %d\n", retval); /* ignore the rest of the line */ while((c = getchar()) != '\n' && c != EOF) ; } while(retval != EOF); /* * goodnight, Irene :) */ return(0); }
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |