Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando Entrada y Salida en programación C

Cuando decimos Entrada, significa alimentar datos a un programa. Puede ser desde un archivo o línea de comandos. C proporciona funciones integradas para leer la entrada y pasarla al programa.

Cuando decimos Salida, significa mostrar datos en pantalla, impresora o archivo. C proporciona funciones integradas para mostrar datos en pantalla y guardarlos en archivos de texto o binarios.

Archivos Estándar

C trata todos los dispositivos como archivos. Dispositivos como la pantalla se direccionan igual que archivos. Tres archivos se abren automáticamente al ejecutar un programa para acceso a teclado y pantalla:

Archivo EstándarPuntero ArchivoDispositivo
Entrada estándarstdinTeclado
Salida estándarstdoutPantalla
Error estándarstderrTu pantalla

Los punteros de archivo son el medio para acceder a archivos para lectura/escritura. Esta sección explica cómo leer valores de la pantalla e imprimir resultados.

Funciones getchar() y putchar()

int getchar(void) lee el siguiente carácter disponible de la pantalla y lo devuelve como entero. Lee solo un carácter a la vez. Úsalo en bucle para leer más.

int putchar(int c) pone el carácter pasado en pantalla y devuelve el mismo carácter. Pone uno a la vez; úsalo en bucle para mostrar más.

Ejemplo:

#include <stdio.h>
int main() {
    int c;
    printf("Introduce un valor: ");
    c = getchar();
    printf("\nIngresaste: ");
    putchar(c);
    return 0;
}

Al compilar y ejecutar, espera entrada. Al ingresar texto y pulsar Enter, lee solo un carácter:

$./a.out
Introduce un valor: esto es prueba
Ingresaste: e

Funciones gets() y puts()

char *gets(char *s) lee una línea de stdin al buffer apuntado por s hasta nueva línea o EOF.

int puts(const char *s) escribe la cadena 's' y nueva línea a stdout.

NOTA: gets() está obsoleta; usa fgets() en su lugar.

#include <stdio.h>
int main() {
    char str[100];
    printf("Introduce un valor: ");
    gets(str);
    printf("\nIngresaste: ");
    puts(str);
    return 0;
}

Al ejecutar, lee la línea completa:

$./a.out
Introduce un valor: esto es prueba
Ingresaste: esto es prueba

Funciones scanf() y printf()

int scanf(const char *formato, ...) lee de stdin y analiza según formato.

int printf(const char *formato, ...) escribe en stdout según formato.

El formato puede ser cadena constante, pero puedes especificar %s, %d, %c, %f, etc., para leer/imprimir cadenas, enteros, caracteres, flotantes. Hay muchas opciones de formato. Ejemplo simple:

#include <stdio.h>
int main() {
    char str[100];
    int i;
    printf("Introduce un valor: ");
    scanf("%s %d", str, &i);
    printf("\nIngresaste: %s %d ", str, i);
    return 0;
}

Al ejecutar:

$./a.out
Introduce un valor: siete 7
Ingresaste: siete 7

Nota: scanf() espera entrada en el mismo formato que los especificadores (%s %d = "cadena entero"). Si das "cadena cadena" o "entero entero", se considera entrada incorrecta. Segundo, al leer cadena, scanf() se detiene al encontrar espacio; "esto es prueba" son tres cadenas para scanf().

Lenguaje C

  1. Entendiendo palabras clave e identificadores en C#: Reglas, listas y mejores prácticas
  2. Fundamentos de C#: Entrada y salida esenciales
  3. Clases y objetos en C#: Fundamentos para POO robusta
  4. Dominando la Entrada y Salida en C++: Guía Práctica
  5. Dominando la entrada/salida en C: scanf() y printf() explicados
  6. Dominando flujos en C++: cout, cin, cerr, clog – Guía práctica
  7. Entendiendo constantes y literales en C: Tipos, uso y mejores prácticas
  8. Constantes y literales en C#: Tipos, reglas y mejores prácticas
  9. Dominando Latches D: Diseño, Operación y Diferencias Clave
  10. Dominando E/S e importación de módulos en Python: Guía práctica
  11. Dominar Entrada y Salida en Java: Imprimir, Leer y Formatear Datos