typestar

Leer entrada de forma segura en C

scanf corta: revisa su valor de retorno y nunca dejes un %s sin límite.

#include <stdio.h>

void read_pair(void) {
    int count = 0;
    double rate = 0.0;

    printf("count and rate: ");
    if (scanf("%d %lf", &count, &rate) != 2) {
        printf("could not read both values\n");
        return;
    }

    char name[10];
    if (scanf("%9s", name) == 1) {
        printf("%s: %d at %.1f\n", name, count, rate);
    }
}

Cómo funciona

  1. Devuelve cuántos elementos asignó con éxito.
  2. %9s acota la escritura a un búfer de diez bytes.
  3. El código real casi siempre lee una línea con fgets y la parsea.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
296
Tokens
93
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 62 segundos.

Escribe este fragmento

Paso 2 de 2 en Entrada y salida; paso 32 de 35 en Fundamentos del lenguaje.

← Anterior Siguiente →