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;
}