Lenguaje de programación C

Leer datos por teclado en C utilizando scanf

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.

La función

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>.

Cómo leer variables con scanf

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.

Leer una variable entera en C

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.

Obtener un valor flotante por teclado

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.

Leer cadena con scanf

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.

Más formatos

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)

 

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

6 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

6 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

6 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

6 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

6 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

7 días hace

Esta web usa cookies.