Beispiel:
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int is_numeric(char *);
int read_int(int *);
int main(void)
{
int i1;
int i2;
for(;;)
{
printf("Geben Sie zwei Zahlen ein\n"
"Zahl 1> ");
if (!read_int(&i1))
{
printf("Ihre Eingabe ist keine Zahl\n");
continue;
}
printf("Zahl 2> ");
if (!read_int(&i2))
{
printf("Ihre Eingabe ist keine Zahl\n");
continue;
}
printf("%d + %d = %d\n\n", i1, i2, i1 + i2);
}
return 0;
}
int is_numeric(char *buffer)
{
if (buffer[0] == '-' && buffer[1] >= '0' && buffer[1] <= '9')
buffer++;
for(; *buffer >= '0' && *buffer <= '9'; buffer++);
return (*buffer == 0);
}
int read_int(int *i)
{
char buffer[100];
fgets(buffer, sizeof(buffer) - 1, stdin);
if (buffer[strlen(buffer) - 1] == '\n')
buffer[strlen(buffer) - 1] = 0;
*i = atoi(buffer);
return is_numeric(buffer);
}