Bibliothèque standard C -<stdio.h>

Introduction

stdio .hLe fichier d'en-tête définit trois types de variables, un certain nombre de macros et diverses fonctions pour effectuer des entrées et sorties.

<stdio.h>C'est un fichier d'en-tête de la bibliothèque standard C qui définit diverses fonctions et types pour la gestion des fichiers et des flux d'entrée/sortie standard.

Variables de la bibliothèque

Les types de variables suivants sont définis dans le fichier d'en-tête stdio.h :

Numéro de sérieVariables et description
1size_t
Il s'agit d'un type entier non signé, qui est le résultat du mot-clésizeof, indiquant la taille d'un objet.
2FILE
Type de flux de fichier, un type d'objet adapté pour stocker les informations de flux de fichier.
3fpos_t
Type de position de fichier, un type d'objet adapté pour stocker n'importe quelle position dans un fichier.

Macros de bibliothèque

Voici les macros définies dans le fichier d'en-tête stdio.h :

Numéro de sérieMacros & Description
1NULL
Cette macro est la valeur d'une constante de pointeur nul.
2_IOFBF、_IOLBFet _IONBF
Ces macros s'étendent en expressions constantes entières avec des valeurs spécifiques et conviennent poursetvbufLe troisième paramètre de la fonction.
3BUFSIZ
Cette macro est un entier qui représentesetbufLa taille du tampon utilisée par la fonction.
4EOF
Cette macro est un entier négatif indiquant que la fin du fichier a été atteinte.
5FOPEN_MAX
Cette macro est un entier qui représente le nombre de fichiers que le système peut ouvrir simultanément.
6FILENAME_MAX
Cette macro est un entier qui représente la longueur maximale d'un nom de fichier qu'un tableau de caractères peut stocker. Si l'implémentation n'a pas de restrictions, cette valeur doit être le maximum recommandé.
7L_tmpnam
Cette macro est un entier qui représente la longueur maximale d'un tableau de caractères pouvant stocker un nom de fichier temporaire créé par la fonction tmpnam.
8SEEK_CUR, SEEK_ENDetSEEK_SET
Ces macros sont utilisées dans la fonctionfseekpour se positionner à différents endroits dans un fichier.
9TMP_MAX
Cette macro est le nombre maximal de noms de fichiers uniques que la fonction tmpnam peut générer.
10stderr, stdinetstdout
Ces macros sont des pointeurs vers le type FILE, correspondant respectivement aux flux d'erreur standard, d'entrée standard et de sortie standard.

Fonctions de bibliothèque

Les fonctions suivantes sont définies dans le fichier d'en-tête stdio.h :

Pour mieux comprendre les fonctions, étudiez-les dans l'ordre suivant, car le fichier créé dans la première fonction sera utilisé dans les fonctions suivantes.
Numéro de sérieFonctions et description
1int fclose(FILE *stream)
Ferme le flux stream. Vide tous les tampons.
2void clearerr(FILE *stream)
Efface les indicateurs de fin de fichier et d'erreur pour le flux stream donné.
3int feof(FILE *stream)
Teste l'indicateur de fin de fichier pour le flux stream donné.
4int ferror(FILE *stream)
Teste l'indicateur d'erreur pour le flux stream donné.
5int fflush(FILE *stream)
Vide le tampon de sortie du flux stream.
6int fgetpos(FILE *stream, fpos_t *pos)
Obtient la position actuelle dans le fichier du flux stream et l'écrit dans pos.
7FILE *fopen(const char *filename, const char *mode)
Ouvre le fichier pointé par filename en utilisant le mode mode donné.
8size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
Lit des données depuis le flux stream donné dans le tableau pointé par ptr.
9FILE *freopen(const char *filename, const char *mode, FILE *stream)
Associe un nouveau nom de fichier filename au flux stream ouvert donné, tout en fermant l'ancien fichier dans le flux.
10int fseek(FILE *stream, long int offset, int whence)
Définit la position du fichier du flux stream au décalage offset donné, le paramètreoffsetSignifie à partir d'unwhenceLe nombre d'octets pour la recherche de position.
11int fsetpos(FILE *stream, const fpos_t *pos)
Définit la position du fichier du flux stream donné à la position donnée. Le paramètreposest la position donnée par la fonction fgetpos.
12long int ftell(FILE *stream)
Renvoie la position actuelle du fichier pour le flux stream donné.
13size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
Écrit les données du tableau pointé par ptr vers le flux stream donné.
14int remove(const char *filename)
Supprime le fichier filename donné afin qu'il ne soit plus accessible.
15int rename(const char *old_filename, const char *new_filename)
Change le nom du fichier pointé par old_filename en new_filename.
16void rewind(FILE *stream)
Place la position dans le fichier au début du fichier du flux stream donné.
17void setbuf(FILE *stream, char *buffer)
Définit comment le flux stream doit être mis en mémoire tampon.
18int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
Une autre fonction qui définit comment le flux stream doit être mis en mémoire tampon.
19FILE *tmpfile(void)
Crée un fichier temporaire en mode binaire de mise à jour (wb+).
20char *tmpnam(char *str)
Génère et retourne un nom de fichier temporaire valide qui n'existait pas auparavant.
21int fprintf(FILE *stream, const char *format, ...)
Envoie une sortie formatée vers le flux stream.
22int printf(const char *format, ...)
Envoie une sortie formatée vers la sortie standard stdout.
23int sprintf(char *str, const char *format, ...)
Envoie une sortie formatée dans une chaîne.
24int vfprintf(FILE *stream, const char *format, va_list arg)
Envoie une sortie formatée vers le flux stream en utilisant une liste d'arguments.
25int vprintf(const char *format, va_list arg)
Envoie une sortie formatée vers la sortie standard stdout en utilisant une liste d'arguments.
26int vsprintf(char *str, const char *format, va_list arg)
Envoie une sortie formatée dans une chaîne en utilisant une liste d'arguments.
27int fscanf(FILE *stream, const char *format, ...)
Lit une entrée formatée depuis le flux stream.
28int scanf(const char *format, ...)
Lit une entrée formatée depuis l'entrée standard stdin.
29int sscanf(const char *str, const char *format, ...)
Lit une entrée formatée depuis une chaîne.
30int fgetc(FILE *stream)
Obtient le caractère suivant (un caractère non signé) du flux stream spécifié et avance l'indicateur de position.
31char *fgets(char *str, int n, FILE *stream)
Lit une ligne depuis le flux stream spécifié et la stocke dans la chaîne pointée par str. Lorsque(n-1)caractères sont lus, ou lorsqu'un caractère de nouvelle ligne est lu, ou lorsque la fin du fichier est atteinte, la lecture s'arrête, selon ce qui se produit en premier.
32int fputc(int char, FILE *stream)
Écrit le caractère (un caractère non signé) spécifié par l'argument char dans le flux stream spécifié et avance l'indicateur de position.
33int fputs(const char *str, FILE *stream)
Écrit la chaîne dans le flux stream spécifié, en excluant le caractère nul.
34int getc(FILE *stream)
Obtient le caractère suivant (un caractère non signé) du flux stream spécifié et avance l'indicateur de position.
35int getchar(void)
Lit un caractère (un caractère non signé) depuis l'entrée standard stdin.
36char *gets(char *str)
Lit une ligne depuis l'entrée standard stdin et la stocke dans la chaîne pointée par str. Elle s'arrête lorsqu'un caractère de nouvelle ligne est lu ou lorsque la fin du fichier est atteinte, selon la situation.
37int putc(int char, FILE *stream)
Écrit le caractère (un caractère non signé) spécifié par l'argument char dans le flux stream spécifié et avance l'indicateur de position.
38int putchar(int char)
Écrit le caractère (un caractère non signé) spécifié par l'argument char vers la sortie standard stdout.
39int puts(const char *str)
Écrit une chaîne vers la sortie standard stdout, jusqu'au caractère nul non compris. Un caractère de nouvelle ligne est ajouté à la sortie.
40int ungetc(int char, FILE *stream)
Repousse le caractère char (un caractère non signé) sur le flux stream spécifié afin qu'il soit le prochain caractère à être lu.
41void perror(const char *str)
Affiche un message d'erreur descriptif sur la sortie d'erreur standard stderr. D'abord, la chaîne str est affichée, suivie d'un deux-points, puis d'un espace.
42int snprintf(char *str, size_t size, const char *format, ...)
Formate la chaîne de caractères dans str.

Exemple

Voici quelques<stdio.h>Exemples de fonctions dans :

Ouverture et fermeture de fichiers :

Exemple

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }
    // Effectuer des opérations sur les fichiers
    fclose(file);
    return 0;
}

Lire le contenu du fichier :

Exemple

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }

    char buffer[256];
    while (fgets(buffer, sizeof(buffer), file) != NULL) {
        printf("%s", buffer);
    }

    fclose(file);
    return 0;
}
Écrire le contenu du fichier :

Exemple

#include <stdio.h>

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

Notes

  • UtilisationfopenAprès avoir ouvert un fichier, veillez à utiliserfcloseFerme le fichier pour éviter les fuites de ressources de fichier.
  • UtilisationfgetsLors de la lecture de chaînes de caractères, veillez à faire attention à la taille du tampon pour éviter un dépassement de tampon.
  • Utilisationprintf、scanfLors de l'utilisation de fonctions, veillez à faire attention à l'exactitude de la chaîne de format pour éviter un comportement indéfini.

En comprenant et en utilisant<stdio.h>Les fonctions fournies facilitent les opérations sur les fichiers et les opérations d'entrée/sortie standard, ainsi que l'écriture de programmes C plus robustes et flexibles.

autres extensions