Problema Imput C

di il
2 risposte

Problema Imput C

Ciao a tutti ragazzi sono nuovo nel forum ed è da poco che programmo in C! Ho riscontrato un problema in un programma, nel quale devo prendere una lettera in input da tastiera dentro un if! Non funziona correttamente!!

Ecco un esempio di codice banale con lo stesso problema del mio programma:

#include <stdio.h>
#include <stdlib.h>

int main() {
char a;
int k;
printf("Digita il numero 1: ");
scanf("%d", &k);
if(k==1) {
printf("Digita una lettera: ");
scanf("%c", &a);
printf("Ecco la lettera: %c\n", a);
}
else {
printf("Hai sbagliato!!!!!!!");
}
return 0;
}

Questo è l'output:
Inserisci il numero 1: 1
Inserisci una lettera: Ecco la lettera:
Program ended with code 0

Qualcuno sa dirmi cosa sbaglio?
Grazie in anticipo!

2 Risposte

  • Re: Problema Imput C

    Così dovrebbe andare:
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
    char a;
    int k;
    printf("Digita il numero 1: ");
    scanf("%d", &k);
    while ( getchar() != '\n' );       // Questo svuota completamente il buffer di input
    if(k==1) {
    printf("Digita una lettera: ");
    scanf("%c", &a);
    printf("Ecco la lettera: %c\n", a);
    }
    else {
    printf("Hai sbagliato!!!!!!!");
    }
    return 0;
    }
  • Re: Problema Imput C

    Si ora funziona! Grazie!
Devi accedere o registrarti per scrivere nel forum
2 risposte