niepoprawnie działający scanf

0

Mam problem ze scanf, oto fragment koddu:

printf("Podaj liczbe: \n");
    int a;
    if(scanf("%d",&a)!=1){
        printf("NIE");
        return 1;
    }
    int b;
    printf("Podaj druga lczbe:\n");
    if(scanf("%d",&b)!=1){
        printf("NIE");
        return 1;
    }
    printf("OK");

To co mi się wyświetla po wprowadzeniu przez uzytkownika najpierw liczby później litery:

Podaj liczbe:
34fd
Podaj druga lczbe:
NIE

Co nalezy zrobić aby od razu wyświetliło NIE bez pytanie o drugą liczbę?

1
if(scanf("%d%d",&a, &b) != 2)

z drugiej strony, czy ty na pewno wiesz czego chcesz?

0

Tradycyjne dla scanf zostawianie entera w buforze. Remedium na szczęście jest proste, spacja przed %d:

....
if (scanf(" %d",&a) != 1)
.....

1 użytkowników online, w tym zalogowanych: 0, gości: 1