Salve a tutti, ho questo programmino in C in cui, nella parte iniziale, inserisco dei numeri interi all'interno di un array e vorrei controllare,ad ogni inserimento da tastiera, che il valore inserito all'interno dell'array sia un numero intero e nel caso non lo fosse dovrebbe apparire un messaggio di errore e farmi reinserire il numero.
Ho pensato di memorizzare il valore di ritorno della funzione scanf() in una variabile, confrontarlo col valore 0 all'interno di un if, il tutto all'interno di un ciclo do while.
Finchè inserisco valori numerici interi va tutto bene ma quando inserisco altri caratteri entra in un loop infinito, siccome sono un principiante del linguaggio C non riesco a capire l'errore, qualcuno può aiutarmi?
Grazie a chiunque risponda.
#include<stdio.h>
#define SIZE 5
int main(){
int i, num, v[SIZE];
for (i=0;i<SIZE;i++){
printf("Inserire un numero intero nella posizione %d del vettore\n ", i+1);
do {
num = scanf(" %d", &v[i]);
if (num == 0) {
printf(" Attenzione : input non valido, riprovare.\n");
}
}while (num == 0);
}
}