typestar

Escribir un reporte formateado en C

fprintf escribe a cualquier stream con el mismo lenguaje de formato que printf.

#include <stdio.h>

typedef struct {
    const char *lang;
    int tpm;
    double accuracy;
} Row;

int write_report(const char *path, const Row *rows, size_t n) {
    FILE *f = fopen(path, "w");
    if (f == NULL) {
        return 0;
    }
    fprintf(f, "%-10s %6s %9s\n", "lang", "tpm", "accuracy");
    for (size_t i = 0; i < n; i++) {
        fprintf(f, "%-10s %6d %8.1f%%\n", rows[i].lang, rows[i].tpm,
                rows[i].accuracy);
    }
    return fclose(f) == 0;
}

Cómo funciona

  1. La única diferencia con printf es el argumento del stream.
  2. Los anchos de columna en la cadena de formato alinean la salida.
  3. Revisa el valor de retorno cuando la escritura de verdad importa.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
407
Tokens
142
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 1 de 4 en Escritura y binario; paso 5 de 12 en Archivos y E/S.

← Anterior Siguiente →