
Originariamente inviata da
minomic
Se non sbaglio (ora non ho tempo di provare) un'altra soluzione potrebbe essere quella di inserire uno spazio nella scanf, quindi
codice:
scanf(" %c", ...);
E' giusto?
Uno spazio rimuove qualsiasi blank. Se l'utente decidesse di inserire uno spazio la tua soluzione non funzionerebbe in quanto la rimozione non si fermerebbe a '\n'.
Prova ad eseguire questo inserendo solamente degli spazi e te ne renderai conto
codice:
#include <stdio.h>
int main(void) {
char c;
scanf("%c", &c);
printf("Carattere [%c]\n", c);
while(getchar()!='\n');
scanf("%c", &c);
printf("Carattere [%c]\n", c);
scanf(" %c", &c);
printf("Carattere [%c]\n", c);
return 0;
}