En C, una de las formas más comunes de interactuar con el usuario es pedirle que introduzca datos por teclado. Para ello usamos la función scanf, que permite leer distintos tipos de datos y almacenarlos en variables.
📌 ¿Qué es scanf?
scanf es una función de la biblioteca estándar de C (stdio.h) que lee datos desde la entrada estándar (normalmente el teclado) y los guarda en variables.
scanf("formato", &variable);
"formato": especificador del tipo de dato (%d,%f,%c,%s, etc.)&variable: el operador&indica la dirección de memoria donde se guardará el dato
🧪 Ejemplos prácticos
1. Leer un número entero
#include <stdio.h>
int main() {
int edad;
printf("Introduce tu edad: ");
scanf("%d", &edad);
printf("Tu edad es: %d\n", edad);
return 0;
}
2. Leer un número decimal
#include <stdio.h>
int main() {
float altura;
printf("Introduce tu altura en metros: ");
scanf("%f", &altura);
printf("Tu altura es: %.2f metros\n", altura);
return 0;
}
3. Leer un carácter
#include <stdio.h>
int main() {
char letra;
printf("Introduce una letra: ");
scanf(" %c", &letra); // el espacio evita problemas con el buffer
printf("La letra introducida es: %c\n", letra);
return 0;
}
4. Leer una cadena de texto
#include <stdio.h>
int main() {
char nombre[50];
printf("Introduce tu nombre: ");
scanf("%s", nombre); // no se usa &
printf("Hola, %s!\n", nombre);
return 0;
}
⚠️ Nota:
scanf("%s", ...)no permite leer espacios. Para nombres completos, usafgets.
🛡️ Buenas prácticas
- Validar la entrada: evita errores si el usuario introduce datos inesperados.
- Limpiar el buffer: si usas
scanfseguido defgets, puede haber conflictos. - Evita
fflush(stdin): no es estándar y puede fallar en algunos compiladores.
🧠 Conclusión
Dominar scanf es esencial para crear programas interactivos en C. Con estos ejemplos, puedes empezar a pedir datos al usuario y usarlos en tus programas. ¡Experimenta y adapta los ejemplos a tus propios proyectos!
