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érie | Variables et description |
|---|---|
| 1 | size_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. |
| 2 | FILE Type de flux de fichier, un type d'objet adapté pour stocker les informations de flux de fichier. |
| 3 | fpos_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érie | Macros & Description |
|---|---|
| 1 | NULL 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. |
| 3 | BUFSIZ Cette macro est un entier qui représentesetbufLa taille du tampon utilisée par la fonction. |
| 4 | EOF Cette macro est un entier négatif indiquant que la fin du fichier a été atteinte. |
| 5 | FOPEN_MAX Cette macro est un entier qui représente le nombre de fichiers que le système peut ouvrir simultanément. |
| 6 | FILENAME_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é. |
| 7 | L_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. |
| 8 | SEEK_CUR, SEEK_ENDetSEEK_SET Ces macros sont utilisées dans la fonctionfseekpour se positionner à différents endroits dans un fichier. |
| 9 | TMP_MAX Cette macro est le nombre maximal de noms de fichiers uniques que la fonction tmpnam peut générer. |
| 10 | stderr, 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érie | Fonctions et description |
|---|---|
| 1 | int fclose(FILE *stream) Ferme le flux stream. Vide tous les tampons. |
| 2 | void clearerr(FILE *stream) Efface les indicateurs de fin de fichier et d'erreur pour le flux stream donné. |
| 3 | int feof(FILE *stream) Teste l'indicateur de fin de fichier pour le flux stream donné. |
| 4 | int ferror(FILE *stream) Teste l'indicateur d'erreur pour le flux stream donné. |
| 5 | int fflush(FILE *stream) Vide le tampon de sortie du flux stream. |
| 6 | int fgetpos(FILE *stream, fpos_t *pos) Obtient la position actuelle dans le fichier du flux stream et l'écrit dans pos. |
| 7 | FILE *fopen(const char *filename, const char *mode) Ouvre le fichier pointé par filename en utilisant le mode mode donné. |
| 8 | size_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. |
| 9 | FILE *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. |
| 10 | int 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. |
| 11 | int 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. |
| 12 | long int ftell(FILE *stream) Renvoie la position actuelle du fichier pour le flux stream donné. |
| 13 | size_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é. |
| 14 | int remove(const char *filename) Supprime le fichier filename donné afin qu'il ne soit plus accessible. |
| 15 | int rename(const char *old_filename, const char *new_filename) Change le nom du fichier pointé par old_filename en new_filename. |
| 16 | void rewind(FILE *stream) Place la position dans le fichier au début du fichier du flux stream donné. |
| 17 | void setbuf(FILE *stream, char *buffer) Définit comment le flux stream doit être mis en mémoire tampon. |
| 18 | int 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. |
| 19 | FILE *tmpfile(void) Crée un fichier temporaire en mode binaire de mise à jour (wb+). |
| 20 | char *tmpnam(char *str) Génère et retourne un nom de fichier temporaire valide qui n'existait pas auparavant. |
| 21 | int fprintf(FILE *stream, const char *format, ...) Envoie une sortie formatée vers le flux stream. |
| 22 | int printf(const char *format, ...) Envoie une sortie formatée vers la sortie standard stdout. |
| 23 | int sprintf(char *str, const char *format, ...) Envoie une sortie formatée dans une chaîne. |
| 24 | int vfprintf(FILE *stream, const char *format, va_list arg) Envoie une sortie formatée vers le flux stream en utilisant une liste d'arguments. |
| 25 | int vprintf(const char *format, va_list arg) Envoie une sortie formatée vers la sortie standard stdout en utilisant une liste d'arguments. |
| 26 | int vsprintf(char *str, const char *format, va_list arg) Envoie une sortie formatée dans une chaîne en utilisant une liste d'arguments. |
| 27 | int fscanf(FILE *stream, const char *format, ...) Lit une entrée formatée depuis le flux stream. |
| 28 | int scanf(const char *format, ...) Lit une entrée formatée depuis l'entrée standard stdin. |
| 29 | int sscanf(const char *str, const char *format, ...) Lit une entrée formatée depuis une chaîne. |
| 30 | int fgetc(FILE *stream) Obtient le caractère suivant (un caractère non signé) du flux stream spécifié et avance l'indicateur de position. |
| 31 | char *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. |
| 32 | int 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. |
| 33 | int fputs(const char *str, FILE *stream) Écrit la chaîne dans le flux stream spécifié, en excluant le caractère nul. |
| 34 | int getc(FILE *stream) Obtient le caractère suivant (un caractère non signé) du flux stream spécifié et avance l'indicateur de position. |
| 35 | int getchar(void) Lit un caractère (un caractère non signé) depuis l'entrée standard stdin. |
| 36 | char *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. |
| 37 | int 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. |
| 38 | int putchar(int char) Écrit le caractère (un caractère non signé) spécifié par l'argument char vers la sortie standard stdout. |
| 39 | int 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. |
| 40 | int 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. |
| 41 | void 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. |
| 42 | int 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
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
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;
}
Exemple
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
- Utilisation
fopenAprès avoir ouvert un fichier, veillez à utiliserfcloseFerme le fichier pour éviter les fuites de ressources de fichier. - Utilisation
fgetsLors de la lecture de chaînes de caractères, veillez à faire attention à la taille du tampon pour éviter un dépassement de tampon. - Utilisation
printf、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.