El% C no saltará carbón espacios en blanco como especificadores de formato numérico hacen. tanto, si utiliza:
#include<stdio.h>
int main(int argc, char* argv[]){
char c;
scanf("%c", &c);
printf("%c\n", c);
scanf("%c", &c); // Try running with and without space
printf("%c\n", c);
return 0;
}
Es muy probable que el espacio en blanco anterior en el buffer de entrada se realizará en el segundo scanf, y usted no tendrá la oportunidad de escribir. El espacio antes de% c hará que scanf omita cualquier carácter de espacio en blanco que esté en el búfer de entrada para que pueda ingresar su entrada correctamente. a veces para conseguir los mismos efectos escriben:
fflush(stdin);
scanf("%c" &c);
Pero esto se considera muy mala programación como C estándar especifica el comportamiento de fflush (stdin) no está definido. Así que siempre use espacio en la cadena de formato a menos que tenga una razón específica para capturar espacios en blanco también.
http://linux.die.net/man/3/scanf, http://www.manpagez.com/man/3/scanf/, http://unixhelp.ed.ac.uk/CGI/ man-cgi? scanf + 3, GIYF – sehe