typestar

Los tres streams estándar en C

stdin, stdout y stderr, y por qué los diagnósticos van en el tercero.

#include <stdio.h>

int prompt_and_read(int *out) {
    printf("value: ");
    fflush(stdout);

    if (scanf("%d", out) != 1) {
        fprintf(stderr, "not a number\n");
        return 0;
    }
    fprintf(stdout, "read %d\n", *out);
    return 1;
}

Cómo funciona

  1. stdout tiene búfer; stderr no, así que los errores aparecen de inmediato.
  2. Redirigir la salida deja stderr en la terminal.
  3. fflush(stdout) fuerza un prompt a salir antes de leer.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
211
Tokens
69
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 41 segundos.

Escribe este fragmento

Paso 2 de 3 en Posicionamiento y streams; paso 10 de 12 en Archivos y E/S.

← Anterior Siguiente →