0Pricing
C Academy · Lección

scanf y entrada

Lea la entrada del usuario

scanf y entrada es una lección gratuita de C Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 4 lecciones en total.

Qué hace scanf

scanf lee la entrada con formato que escribe el usuario. Utiliza los mismos especificadores que printf.

#include <stdio.h>
int main(void) {
    int x = 0;
    /* scanf("%d", &x); */
    x = 5;
    printf("x = %d\n", x);
    return 0;
}

El operador de dirección

scanf necesita la dirección de una variable para poder almacenar allí el valor. Por eso se escribe &x.

#include <stdio.h>
int main(void) {
    int x = 42;
    int *p = &x;
    printf("value via address = %d\n", *p);
    return 0;
}

Lectura de un entero

Para leer un entero, pase %d y la dirección de un int.

#include <stdio.h>
int main(void) {
    int n;
    /* scanf("%d", &n); */
    n = 7;
    printf("You entered %d\n", n);
    return 0;
}

Lectura de un número real

Para leer un float, use %f; para un double, use %lf.

#include <stdio.h>
int main(void) {
    double d;
    /* scanf("%lf", &d); */
    d = 3.14;
    printf("d = %.2f\n", d);
    return 0;
}

Lectura de varios valores

Un scanf puede leer varios valores separados por espacios en blanco.

#include <stdio.h>
int main(void) {
    int a, b;
    /* scanf("%d %d", &a, &b); */
    a = 3; b = 4;
    printf("sum = %d\n", a + b);
    return 0;
}

Lectura de un carácter

Use %c para leer un carácter. Tenga cuidado: también lee espacios y saltos de línea.

#include <stdio.h>
int main(void) {
    char c;
    /* scanf(" %c", &c); */
    c = 'X';
    printf("char = %c\n", c);
    return 0;
}

Lectura de una palabra

%s lee una palabra delimitada por espacios en blanco en un array de caracteres. No se necesita & porque el nombre de un array ya es una dirección.

#include <stdio.h>
int main(void) {
    char word[20];
    /* scanf("%s", word); */
    word[0] = 'H'; word[1] = 'i'; word[2] = 0;
    printf("word = %s\n", word);
    return 0;
}

Valor de retorno de scanf

scanf devuelve cuántos elementos ha leído correctamente. Compruébelo para detectar entradas incorrectas.

#include <stdio.h>
int main(void) {
    int n = 5;
    int read = 1; /* pretend scanf returned 1 */
    if (read == 1)
        printf("got %d\n", n);
    return 0;
}

Omisión de espacios iniciales

Los especificadores numéricos omiten automáticamente los espacios en blanco iniciales, pero %c no lo hace. Un espacio delante de %c soluciona este problema.

#include <stdio.h>
int main(void) {
    char c = 'Y';
    printf("Reading with \" %%c\" skips spaces\n");
    printf("c = %c\n", c);
    return 0;
}

Validación de la entrada

Compruebe siempre el valor de retorno antes de confiar en los datos.

#include <stdio.h>
int main(void) {
    int value = 10;
    int ok = 1;
    if (ok)
        printf("valid: %d\n", value);
    else
        printf("invalid input\n");
    return 0;
}

Cómo encaja todo

Un programa típico solicita un valor, lo lee y después lo utiliza.

#include <stdio.h>
int main(void) {
    int age;
    printf("Enter age: ");
    /* scanf("%d", &age); */
    age = 20;
    printf("Next year you will be %d\n", age + 1);
    return 0;
}

Comprobación rápida

Compruebe sus conocimientos sobre scanf.

Repaso: scanf y la entrada

Ha aprendido a leer la entrada del usuario.

  • scanf utiliza especificadores al estilo de printf
  • Pase &var para indicarle dónde almacenar el valor
  • Use %lf para double y %s para palabras
  • Compruebe el valor de retorno para validar la entrada
  • Escriba un espacio antes de %c para omitir los espacios en blanco

Preguntas frecuentes

¿La lección «scanf y entrada» es gratis?

Sí — el texto completo de «scanf y entrada» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 4 lecciones en total.

¿Qué aprenderé en «scanf y entrada»?

Lea la entrada del usuario Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C Academy?

No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «scanf y entrada»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C Academy?

Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Especificadores de formato de printf
  2. scanf y entrada
  3. Ancho, precisión y flags
  4. Errores comunes de E/S
← Volver a C Academy