| errors/input-3.c - Læsning af double og input med input validering - rekursivt funktionskald. | Lektion 7 - slide 8 : 25 Program 3 |
#include <stdio.h>
#include <stdlib.h>
void clear_standard_input_line(void);
void get_double_int_input(void);
int main(void) {
get_double_int_input();
return 0;
}
void get_double_int_input(void) {
double x = 0.0;
int i = 0, input_result;
// Prompting for input of a double and an int:
printf("Enter a double and an integer:\n");
input_result = scanf("%lf %d", &x, &i);
if (input_result != 2){
clear_standard_input_line();
printf("Problems. Try again\n");
get_double_int_input();
}
else {
// Proceed - input OK - input_result == 2;
printf("x = %f, i = %d\n", x, i);
}
}
void clear_standard_input_line(void){
int ch;
while ((ch = getchar()) != '\n' && ch != EOF);
}