Bibliothèque standard C++ <cstdio>

<cstdio>Il s'agit d'un fichier d'en-tête de la bibliothèque standard C++. Il contient l'enveloppe C++ de la bibliothèque d'E/S standard C et est principalement utilisé pour les opérations d'entrée et de sortie de fichiers.

<cstdio>La bibliothèque définit un ensemble de fonctions pour effectuer des opérations d'entrée et de sortie. Ces fonctions peuvent être utilisées pour lire et écrire des fichiers et la console.

Syntaxe

Lors de l'utilisation<cstdio>Avant d'utiliser les fonctions de la bibliothèque, vous devez inclure ce fichier d'en-tête en haut du programme C++ :

#include <cstdio>

Fonctions courantes

<cstdio>La bibliothèque contient de nombreuses fonctions d'E/S de fichiers. Voici quelques fonctions couramment utilisées :

  • fopen: Ouvrir un fichier.
  • fclose: Fermer un fichier.
  • fread: Lire des données depuis un fichier.
  • fwrite: Écrire des données dans un fichier.
  • fprintf: Écrire une sortie formatée dans un fichier.
  • fscanf: Lire une entrée formatée depuis un fichier.
  • fgetc: Lire un caractère depuis un fichier.
  • fputc: Écrire un caractère dans un fichier.
  • fgets: Lire une ligne depuis un fichier.
  • fputs: Écrire une ligne dans un fichier.

Exemple

1. Ouvrir et fermer des fichiers :

Exemple

#include <cstdio>

int main() {
    FILE *file = fopen("example.txt", "w"); // Ouvrir le fichier en écriture
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    fclose(file); // Fermer le fichier
    return 0;
}

2. Écrire des données dans un fichier :

Exemple

#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;
}

A écrit "Hello, World!" dans le fichier "example.txt".

3. Lire des données depuis un fichier :

Exemple

#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;
}

Lire depuis le fichier "example.txt" et afficher "Hello, World!".

4. Utilisez fscanf et fprintf pour l'entrée et la sortie formatées:

Exemple

#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("Nombre: %d, Pi: %fn", number, pi);
    return 0;
}

Résultat de sortie :Number: 42, Pi: 3.141590

fopen et fclose

Utilisé pour ouvrir et fermer des fichiers.

Exemple

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        // Opérations sur les fichiers
        fclose(file);
    } else {
        // Gérer les erreurs
    }
    return 0;
}

fread et fwrite

Utilisé pour lire et écrire des données depuis et vers des fichiers.

Exemple

#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 et ftell

Utilisé pour déplacer le pointeur de fichier dans un fichier et obtenir la position du pointeur de fichier.

Exemple

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        fseek(file, 0, SEEK_END); // Se déplacer à la fin du fichier
        long size = ftell(file);  // Obtenir la taille du fichier
        fclose(file);
    }
    return 0;
}

fflush

Vider le flux de fichier pour écrire les données du tampon dans le fichier.

Exemple

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!", file);
        fflush(file); // S'assurer que les données sont immédiatement écrites dans le fichier
        fclose(file);
    }
    return 0;
}

printf et fprintf

Utilisé pour la sortie formatée vers la sortie standard ou un fichier.

Exemple

#include <cstdio>

int main() {
    int value = 42;
    printf("Value: %d\n", value); // Sortie vers la sortie standard

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

scanf et fscanf

Utilisé pour la saisie formatée depuis l'entrée standard ou un fichier.

Exemple

#include <cstdio>

int main() {
    int value;
    scanf("%d", &value); // Lire depuis l'entrée standard

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

sprintf et sscanf

Utilisé pour la sortie formatée vers une chaîne et la lecture depuis une chaîne.

Exemple

#include <cstdio>

int main() {
    char buffer[50];
    int value = 42;
    sprintf(buffer, "Value: %d", value); // Sortie vers une chaîne

    int readValue;
    sscanf(buffer, "Value: %d", &readValue); // Lire depuis une chaîne

    return 0;
}

fgets et fputs

Utilisé pour lire une chaîne depuis un fichier et écrire une chaîne dans un fichier.

Exemple

#include <cstdio>

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

    file = fopen("example.txt", "w");
    if (file) {
        fputs("Hello, World!\n", file); // Écrire une chaîne dans un fichier
        fclose(file);
    }
    return 0;
}

getc et putc

Utilisé pour lire des caractères depuis un fichier et écrire des caractères dans un fichier.

Exemple

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        int c = getc(file); // Lire un caractère
        fclose(file);
    }

    file = fopen("example.txt", "w");
    if (file) {
        putc('A', file); // Écrire un caractère
        fclose(file);
    }
    return 0;
}

feof et ferror

Utilisé pour détecter la fin de fichier et les erreurs de fichier.

Exemple


#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file) {
        while (!feof(file)) {
            int c = getc(file);
            if (ferror(file)) {
                // Gérer les erreurs
                break;
            }
            // Traiter le caractère
        }
        fclose(file);
    }
    return 0;
}

EOF

Indique l'indicateur de fin de fichier.

Exemple

#include <cstdio>

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

NULL

Représente un pointeur nul.

Exemple

#include <cstdio>

int main() {
    FILE* file = fopen("example.txt", "r");
    if (file == NULL) {
        // Gérer l'erreur d'ouverture de fichier
    } else {
        fclose(file);
    }
    return 0;
}

Notes

  • Utilisation<cstdio>Lors de l'utilisation de la bibliothèque, vous devez vous assurer que l'ouverture et la fermeture des fichiers sont correctement gérées afin d'éviter les fuites de ressources.
  • Lors de l'utilisationfopenLors de son utilisation, vous devez fournir le chemin de fichier et le mode corrects.
  • UtilisationfprintfetfscanfLors de son utilisation, la chaîne de format doit correspondre aux types des variables.
autres extensions