Volevo provare ad utilizzare la restituzione del numero di argomenti assegnati correttamente da scanf() per chiedere un input numerico fino a quando non sia corretto, ma il codice pare non funzionare.
Se si inserisce da subito un valore corretto tutto a posto, ma nel caso questo sia un char (od una stringa), allora il ciclo prosegue all'infinito senza chiedere un'altro input, come se la scanf() fallisse l'assegnamento a prescindere.
Qualcuno in grado di dirmi dove sbaglio?
codice:
#include <stdio.h>
/*
* Il programma prende in input un numero intero, ccntinuando
* a chiederlo nel caso non sia un valore coretto.
*/
int main()
{
int a = 0;
int intero = 0;
printf("Dammi un numero intero\n");
do
{
a = scanf("\n%d", &intero);
printf("scanf(): %d \n", a );
} while ( a < 1);
printf("Hai inserito il numero intero %d\n", intero);
return 0;
}