Biblioteca estándar de C++ <cstdio>

<cstdio>es un archivo de encabezado en la biblioteca estándar de C++, que contiene la encapsulación de C++ de la biblioteca de E/S estándar de C, utilizada principalmente para operaciones de entrada y salida de archivos.

<cstdio>La biblioteca define un conjunto de funciones para realizar operaciones de entrada y salida, que pueden utilizarse para leer y escribir archivos y la consola.

Sintaxis

Al usar<cstdio>las funciones de la biblioteca, debe incluir este archivo de encabezado en la parte superior del programa C++:

#include <cstdio>

Funciones comunes

<cstdio>La biblioteca contiene muchas funciones para E/S de archivos. A continuación se presentan algunas funciones comunes:

  • fopen: abre un archivo.
  • fclose: cierra un archivo.
  • fread: lee datos de un archivo.
  • fwrite: escribe datos en un archivo.
  • fprintf: escribe salida formateada en un archivo.
  • fscanf: lee entrada formateada de un archivo.
  • fgetc: lee un carácter de un archivo.
  • fputc: escribe un carácter en un archivo.
  • fgets: lee una línea de un archivo.
  • fputs: escribe una línea en un archivo.

Ejemplo

1. Abrir y cerrar archivos:

Ejemplo

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w"); // Abre el archivo para escritura
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    fclose(file); // Cierra el archivo
    return 0;
}

2. Escribir datos en un archivo:

Ejemplo

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    fprintf(file, "Hello, World!n");
    fclose(file);
    return 0;
}

Se escribió "Hello, World!" en el archivo "example.txt".

3. Leer datos de un archivo:

Ejemplo

#include <cstdio>
#include <iostream>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    char buffer[100];
    while (fgets(buffer, 100, file) != NULL) {
        std::cout << buffer;
    }
    fclose(file);
    return 0;
}

Se leyó y mostró "Hello, World!" del archivo "example.txt".

4. Uso de fscanf y fprintf para entrada y salida formateada:

Ejemplo

#include <cstdio>

int main() {
    FILE *file = fopen("data.txt", "w");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    fprintf(file, "%d %fn", 42, 3.14159);
    fclose(file);

    file = fopen("data.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    int number;
    float pi;
    fscanf(file, "%d %f", &number, &pi);
    fclose(file);

    std::printf("Number: %d, Pi: %fn", number, pi);
    return 0;
}

Resultado de salida:Number: 42, Pi: 3.141590

fopen y fclose

Se utilizan para abrir y cerrar archivos.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        // Operaciones de archivo
        fclose(file);
    } else {
        // Manejo de errores
    }
    return 0;
}

fread y fwrite

Se utilizan para leer y escribir datos de archivos.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.bin", "wb");
    if (file) {
        int data = 12345;
        fwrite(&data, sizeof(data), 1, file);
        fclose(file);
    }
    return 0;
}

fseek y ftell

Se utilizan para mover el puntero de archivo y obtener la posición del puntero de archivo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        fseek(file, 0, SEEK_END); // Moverse al final del archivo
        long size = ftell(file);  // Obtener el tamaño del archivo
        fclose(file);
    }
    return 0;
}

fflush

Refresca el flujo de archivo y escribe los datos del búfer en el archivo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!", file);
        fflush(file); // Asegura que los datos se escriban inmediatamente en el archivo
        fclose(file);
    }
    return 0;
}

printf y fprintf

Se utilizan para la salida formateada a la salida estándar o a un archivo.

Ejemplo

#include <cstdio>

int main() {
    int value = 42;
    printf("Value: %d\n", value); // Salida a la salida estándar

    FILE* file = fopen("output.txt", "w");
    if (file) {
        fprintf(file, "Value: %d\n", value); // Salida a un archivo
        fclose(file);
    }
    return 0;
}

scanf y fscanf

Se utilizan para la entrada formateada desde la entrada estándar o un archivo.

Ejemplo

#include <cstdio>

int main() {
    int value;
    scanf("%d", &value); // Leer desde la entrada estándar

    FILE* file = fopen("input.txt", "r");
    if (file) {
        fscanf(file, "%d", &value); // Leer desde un archivo
        fclose(file);
    }
    return 0;
}

sprintf y sscanf

Se utilizan para la salida formateada a una cadena y la lectura desde una cadena.

Ejemplo

#include <cstdio>

int main() {
    char buffer[50];
    int value = 42;
    sprintf(buffer, "Value: %d", value); // Salida a una cadena

    int readValue;
    sscanf(buffer, "Value: %d", &readValue); // Leer desde una cadena

    return 0;
}

fgets y fputs

Se utilizan para leer cadenas de un archivo y escribir cadenas en un archivo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        char buffer[100];
        if (fgets(buffer, sizeof(buffer), file)) {
            // Lectura exitosa
        }
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!\n", file); // Escribir la cadena en el archivo
        fclose(file);
    }
    return 0;
}

getc y putc

Se utilizan para leer caracteres de un archivo y escribir caracteres en un archivo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c = getc(file); // Leer un carácter
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        putc('A', file); // Escribir un carácter
        fclose(file);
    }
    return 0;
}

feof y ferror

Se utilizan para detectar el final del archivo y errores de archivo.

Ejemplo


#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        while (!feof(file)) {
            int c = getc(file);
            if (ferror(file)) {
                // Manejo de errores
                break;
            }
            // Procesar caracteres
        }
        fclose(file);
    }
    return 0;
}

EOF

Representa el indicador de fin de archivo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c;
        while ((c = getc(file)) != EOF) {
            // Procesar caracteres
        }
        fclose(file);
    }
    return 0;
}

NULL

Representa el puntero nulo.

Ejemplo

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file == NULL) {
        // Manejo de error de apertura de archivo
    } else {
        fclose(file);
    }
    return 0;
}

Notas

  • Al utilizar<cstdio>la biblioteca, debe asegurarse de manejar correctamente la apertura y el cierre de archivos para evitar fugas de recursos.
  • Al utilizarfopendebe proporcionar la ruta y el modo de archivo correctos.
  • Al utilizarfprintfyfscanfla cadena de formato debe coincidir con los tipos de variables.
Otras extensiones