Quote Originariamente inviata da minomic Visualizza il messaggio
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;
}