/*
* simple program using scanf to read an integer
* this one works correctly
*
* Matt Bishop, ECS 36A
*
* April 22, 2024
* first version
*/
#include <stdio.h>
/*
* the program
*/
int main(void)
{
int n; /* what is read */
int res; /* return value of scanf */
/* try to read an integer, looping until you do */
/* or until you read an EOF (here or below) */
while((res = scanf("%d", &n)) != 1 && res != EOF){
/* you didn't; report an error */
fprintf(stderr, "Enter a positive integer\n");
/* ignore the rest of the line */
while((n = getchar()) != EOF && n != '\n')
;
}
/* if EOF, nothing read; otherwise, print the number */
if (res != EOF)
printf("I read %d\n", n);
/* quit */
return(0);
}
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |