Czytając "Szkołę programowania w C" Stephena Praty natknąłem się na wykorzystanie zwracanej przez funkcję scanf liczby, do sprawdzenia czy udało się poprawnie wprowadzić dane. Przytaczam tutaj prosty kod, który jednak ilustruje mój problem. Mianowicie z założenia program powinien przyjąć liczbę całkowitą, jeżeli jednak zostaną wprowadzone jakieś niewłaściwe dane, powinien wyświetlić odpowiedni komunikat i ponownie pobrać dane. Nie rozumiem natomiast dlaczego przy wprowadzeniu litery program zamiast wyświetlić komunikat raz i czekać na ponowne wprowadzenie danych zasypuje terminal niekończącymi się komunikatami :(
#include <stdio.h>
int main(){
int n;
while( scanf("%d", &n) !=1){
printf("\nto nie liczb calkowita");
}
return 0;
}