Salve ragazzi, ho un problema a dir poco assurdo...la scanf in C mi da problemi se faccio una lettura di un carattere dopo aver fatto quella di un numero...esempio:
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero;
char carattere;
printf("inserisci il numero->");
scanf("%d",&numero);
printf("inserisci il carattere->");
scanf("%c",&carattere);
system("pause");
}
Bene...mandando in esecuzione questo codice, accade che mi chiede il numero, lo inserisco, esegue la printf chiedendomi il carattere e va direttamente alla system("pause"), senza farmi inserire il carattere...insomma non esegue la scanf del carattere.
Se faccio fare la lettura del carattere prima di quella del numero tutto funziona...
In realtà ho trovato la soluzione, ovvero inserendo l'istruzione:
fflush(stdin);
prima della seconda printf, tutto funziona....ma mi domando PERCHE'?? è strana come cosa...può darsi che sia un problema noto, ma io è da poco che ho messo mani sul C, in passato ho lavorato solo in C++, dove la CIN non m'ha mai dato problemi del genere...
Ringrazio tutti!