L'inserimento da tastiera di un tipo di dato diverso da quello richiesto sulla scanf mi genera un loop infinito

di il
2 risposte

L'inserimento da tastiera di un tipo di dato diverso da quello richiesto sulla scanf mi genera un loop infinito

Scusate il titolo poco chiaro. Il mio problema é che se da tastiera inserisco una lettera, al posto di un int, il terminale impazzisce e mi va in un loop infinito.

Vi lascio parte del codice e grazie in anticipo!


int main(void)
{
    int scelta;
    do
        scelta = scelta_simbolo(scelta);
    while
        (scelta != 1 && scelta != 2);
    
}
   
int scelta_simbolo (int scelta)
{
    printf("Giocatore 1, digita 1 per utilizzare X o digita 2 per utilizzare O:  " );
    scanf("%d",
          &scelta);
    if (scelta != 1 && scelta != 2)
    {
        printf("Digitazione non valida!\n");
        scelta = scelta_simbolo(scelta);
    }
    return (scelta);
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte