Yo no tengo casi nada de experiencia programando, así que cualquier burrada que diga, perdonarla.
Bueno, por ejemplo, tengo una variable de tipo int llamada edad, y uso el famoso scanf para que el usuario escriba el valor para edad.
¿Cómo puedo hacer que el usuario no escriba "pablito" donde únicamente deben ir números? ¿De qué forma puedo validar los caracteres de entrada?
De antemano, muchas gracias.
Salu2
Las funciones de la familia scanf (scanf, fscanf, sscanf y todas las demás) devuelven un entero con el número de variables leídas. Yo aconsejo leer una cadena con fgets y aplicar luego sscanf para evitar chapucear con el búfer del teclado.
Ejemplo práctico:
int edad;
char buffer[100];
printf ("Introduce edad: ");
fgets (buffer, 100, stdin); /* Nota: Comprobar EOF */
if (sscanf (buffer, "%i", &edad) < 1) /* Esperamos leer una variable. Si leemos menos... meeec */
{
fprintf (stderr, "Edad incorrecta\n");
exit (1);
}
/* Cosas */
Para todo lo demás, te aconsejo que leas la página de scanf en el manual: man 3 scanf