Leer entrada de usuario en C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo leer la entrada del usuario en el lenguaje de programación C utilizando la función scanf(). La función scanf() es una herramienta poderosa para leer la entrada de los usuarios y está definida en la biblioteca estándar de entrada/salida stdio.h. C es un lenguaje fuertemente tipado que admite varios tipos de datos. A lo largo de este laboratorio, nos centraremos en utilizar los tipos de datos char e int para leer y mostrar la entrada del usuario.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/PointersandMemoryGroup(["Pointers and Memory"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/data_types("Data Types") c/BasicsGroup -.-> c/operators("Operators") c/BasicsGroup -.-> c/comments("Comments") c/CompoundTypesGroup -.-> c/strings("Strings") c/PointersandMemoryGroup -.-> c/memory_address("Memory Address") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-136075{{"Leer entrada de usuario en C"}} c/data_types -.-> lab-136075{{"Leer entrada de usuario en C"}} c/operators -.-> lab-136075{{"Leer entrada de usuario en C"}} c/comments -.-> lab-136075{{"Leer entrada de usuario en C"}} c/strings -.-> lab-136075{{"Leer entrada de usuario en C"}} c/memory_address -.-> lab-136075{{"Leer entrada de usuario en C"}} c/function_declaration -.-> lab-136075{{"Leer entrada de usuario en C"}} c/user_input -.-> lab-136075{{"Leer entrada de usuario en C"}} c/output -.-> lab-136075{{"Leer entrada de usuario en C"}} end

Configurar el entorno de desarrollo

En este paso, configuraremos nuestro entorno de desarrollo y crearemos un nuevo archivo C para nuestro programa.

  1. Abre una terminal en el WebIDE. Por defecto, debes estar en el directorio /home/labex/project. Si no estás seguro, puedes escribir pwd (print working directory, imprimir directorio de trabajo) para verificar tu ubicación actual.

  2. Crea un nuevo archivo llamado user_input.c utilizando el siguiente comando:

    touch user_input.c

    El comando touch crea un nuevo archivo vacío si no existe, o actualiza la marca de tiempo de un archivo existente.

  3. Abre el archivo user_input.c en el editor del WebIDE. Puedes hacer esto haciendo clic en el nombre del archivo en el explorador de archivos en el lado izquierdo del WebIDE, o utilizando la opción Open File en el menú File.

Escribir la estructura básica del programa

En este paso, escribiremos la estructura básica de nuestro programa en C.

  1. En el archivo user_input.c, agrega el siguiente código:

    #include <stdio.h>
    
    int main() {
        // We will add our code here
        return 0;
    }

    Analicemos esto:

    • #include <stdio.h> le dice al compilador que incluya la biblioteca estándar de entrada/salida. Esta biblioteca contiene funciones como printf() y scanf() que usaremos para entrada y salida.
    • int main() es la función principal donde comienza la ejecución de nuestro programa. Todo programa en C debe tener una función principal.
    • Las llaves { } definen el cuerpo de la función principal.
    • return 0; al final de la función principal indica que el programa se ha ejecutado con éxito.
  2. Guarda el archivo. Puedes hacerlo presionando Ctrl+S o seleccionando Save del menú File.

Implementar la entrada de usuario para el nombre

Ahora, implementemos la funcionalidad para leer el nombre del usuario.

  1. Modifica el archivo user_input.c para incluir el siguiente código dentro de la función main():

    #include <stdio.h>
    
    int main() {
        char name[100];
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Hello, %s!\n", name);
    
        return 0;
    }

    Esto es lo que hace cada nueva línea:

    • char name[100]; declara un arreglo de caracteres (una cadena) que puede contener hasta 99 caracteres más el terminador nulo.
    • printf("Enter your name: "); solicita al usuario que ingrese su nombre.
    • scanf("%s", name); lee una cadena de la entrada del usuario y la almacena en el arreglo name. El especificador de formato %s se utiliza para leer cadenas.
    • printf("Hello, %s!\n", name); imprime un saludo utilizando el nombre ingresado por el usuario. El %s en la cadena de formato se reemplaza por el valor de name.
  2. Guarda el archivo.

Agregar entrada de edad

Vamos a extender nuestro programa para que también pregunte por la edad del usuario.

  1. Modifica el archivo user_input.c para incluir la entrada de edad:

    #include <stdio.h>
    
    int main() {
        char name[100];
        int age;
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Enter your age: ");
        scanf("%d", &age);
    
        printf("Hello, %s! You are %d years old.\n", name, age);
    
        return 0;
    }

    Lo que es nuevo aquí:

    • int age; declara una variable entera para almacenar la edad del usuario.
    • Hemos agregado otro par de printf() y scanf() para solicitar y leer la edad.
    • scanf("%d", &age); lee un entero de la entrada del usuario. El especificador de formato %d se utiliza para enteros. Observa el & antes de age - esto es porque scanf() necesita la dirección de memoria de la variable para almacenar la entrada.
    • El último printf() ahora incluye la edad en el mensaje de salida.
  2. Guarda el archivo.

Compilar y ejecutar el programa

En este último paso, compilaremos nuestro programa en C y lo ejecutaremos para ver los resultados.

  1. En la terminal, navega hasta el directorio que contiene tu archivo user_input.c:

    cd /home/labex/project

    Este paso asegura que estés en el directorio correcto. Si ya estás allí, verás un mensaje que dice "cd: no such file or directory", que puedes ignorar.

  2. Compila el programa utilizando el compilador GCC:

    gcc user_input.c -o user_input

    Este comando le dice a GCC que compile user_input.c y cree un ejecutable llamado user_input. Si hay algún error en tu código, verás mensajes de error aquí. Si eso sucede, regresa a tu código, corrige los errores y vuelve a intentar compilar.

  3. Ejecuta el programa compilado:

    ./user_input

    El ./ le dice a la shell que busque el programa en el directorio actual.

Terminal compiling C program
  1. El programa te pedirá que ingreses tu nombre y edad. Escribe tus respuestas y presiona Enter después de cada entrada.

  2. Deberías ver un mensaje de saludo personalizado con tu nombre y edad.

Si encuentras algún problema, revisa tu código en busca de errores tipográficos y asegúrate de haber guardado todos los cambios antes de compilar.

Resumen

En este laboratorio, has aprendido cómo leer la entrada del usuario en C utilizando la función scanf(). Has creado un programa que solicita al usuario su nombre y edad, lee la entrada y muestra un mensaje de saludo personalizado. Este ejercicio te ha introducido a las operaciones básicas de entrada/salida en C, el trabajo con diferentes tipos de datos (arreglos char para cadenas y int para enteros) y el proceso de compilación y ejecución de un programa en C.

Puntos clave:

  1. La función scanf() se utiliza para leer la entrada del usuario.
  2. Se utilizan diferentes especificadores de formato (%s para cadenas, %d para enteros) dependiendo del tipo de entrada que estés leyendo.
  3. Cuando lees enteros u otros tipos que no son cadenas con scanf(), debes utilizar el operador & para pasar la dirección de la variable.
  4. El proceso de compilación convierte tu código en C en un programa ejecutable.

Estas habilidades fundamentales son la base para tareas de programación en C más complejas y serán valiosas a medida que continúes aprendiendo y desarrollando tus habilidades de programación. Recuerda, la práctica es clave en la programación: intenta modificar este programa o crear nuevos para reforzar lo que has aprendido.