niepoprawnie działający scanf

niepoprawnie działający scanf
Half-Blood Princess
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Mam problem ze scanf, oto fragment koddu:

Kopiuj
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:

Kopiuj
Podaj liczbe:
34fd
Podaj druga lczbe:
NIE

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

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
if(scanf("%d%d",&a, &b) != 2)

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

MasterBLB
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1454
0

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.