Peligros de usar% * c para borrar el búfer de scanf
¿Existe algún peligro al usar% * c en scanf () para borrar el búfer cuando sea necesario?
Por ejemplo:
char c;
for (int i = 0; i < 5; i++) {
scanf("%c%*c", &c);
}
O
char* str;
char c;
int i;
scanf("%s", str);
scanf("%d%*c", &i);
scanf("%c%*c", &c);
¿Debería haber alguna preocupación por los desbordamientos de búfer u otros problemas de seguridad? Parece que no hay documentación formal para el uso del asterisco en scanf de esta manera para C (EDITAR Esto no es cierto), por lo que tengo problemas para descubrir exactamente qué sucede con los caracteres adicionales que se ingresan. ¿Hay una mejor manera de borrar el búfer de scanf en C?