Este post es muy básico pero nos enseña cómo leer una variable dada por un usuario en C utilizando la función scanf. Con esta función podemos leer cualquier tipo de dato, siempre y cuando especifiquemos su tipo correctamente.
Se llama scanf
porque escanea según un formato. Como primer argumento recibe el formato (una cadena) y como segundo argumento la dirección de memoria en donde pondrá el valor leído.
Dicha función para leer datos por teclado en C está en la librería stdio.h, lo único que debemos de hacer es incluirla con #include <stdio.h>
.
Para ello primero declaramos la variable, y luego llamamos a la función, pasándole la dirección de la variable usando el operador &
. Por cierto, cuando leemos cadenas eso no es necesario, pasamos el nombre de la variable sin obtener su dirección.
Es así:
/*
Utilizar scanf para leer una variable entera en C
@author parzibyte.me
*/#include <stdio.h>
int main(){
int numero; // Aquí alojaremos el valor leído
printf("Dime un número:\n");
scanf("%d", &numero); // Atención al operador &
printf("El número que pusiste es: %d", numero);
}
El printf antes del scanf sirve para indicarle al usuario lo que debe hacer, porque scanf pausa el programa hasta que lee el valor. El formato utilizado es %d.
Lo mismo que hicimos para un entero, pero ahora con un flotante. Queda así:
/*
Utilizar scanf para leer una variable flotante en C
@author parzibyte.me
*/#include <stdio.h>
int main(){
float numero; // Aquí alojaremos el valor leído
printf("Dime un número flotante:\n");
scanf("%f", &numero); // Atención al operador &
printf("El número que pusiste es: %0.2f", numero);
}
El formato es %f. Presta atención cuando imprimimos el número, usamos %0.2f para que imprima únicamente 2 decimales después del punto; esto es para no mostrar el número en su máxima expresión; pero si quieres puedes usar simplemente %f.
Para leer una cadena en C es casi lo mismo, pero ahora no pasamos la dirección de memoria porque una cadena ya es un apuntador al primer carácter que la conforma.
/*
Utilizar scanf para leer una variable de cadena en C
@author parzibyte.me
*/#include <stdio.h>
int main(){
char cadena[20]; // Aquí alojaremos el valor leído
printf("Escribe tu nombre:\n");
scanf("%s", cadena); // No usamos &
printf("Tu nombre es es: %s", cadena);
}
Nota: por favor lee por qué usar fgets en lugar de scanf si quieres mejorar la seguridad de tus programas.
Puedes leer variables de muchos tipos; especificando el formato. De los que recuerdo, son:
%d para enteros declarados con int
%s para cadenas declaradas con char*
o char cadena[longitud]
%c para caracteres declarados con char
%f para flotantes declarados con float
%l para enteros declarados como long
%llu para enteros que son unsigned long long
(usamos esto cuando vimos cómo convertir binario a decimal)
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.
Ver comentarios
muchas gracias por este blog. me ha servido de mucho en la programación de sockets c/c++.