• Giga@hdv-tech.com
  • Service en ligne 24h/24 :
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • Instagram

    C, Lecture et écriture de documents

    Heure de publication : 11 août 2023

    Décrit comment le programmeur C crée, ouvre et ferme un fichier texte ou un fichier binaire.

    Un fichier, signifie une série d'octets, qu'il s'agisse d'un fichier texte ou d'un fichier binaire, le langage C, fournit non seulement l'accès aux fonctions de niveau supérieur, mais fournit également l'appel sous-jacent (OS) pour traiter les fichiers sur le périphérique de stockage .Ce chapitre explique les appels importants dans la gestion des documents.

    fichier ouvert

    Utilisant généralement la fonction fopen() pour créer un nouveau fichier ou ouvrir un fichier existant, cet appel initialise un objet de type FILE qui contient toutes les informations nécessaires pour contrôler le flux.Voici le prototype de cet appel de fonction :

    FICHIER *fopen ( const char * nom de fichier , const char * mode );

    Ici filename est une chaîne pour nommer un fichier, la valeur du mode d'accès peut être l'une des valeurs suivantes :

    modèle

    description

    r

    Ouvrez un fichier texte existant qui permet sa lecture.

    w

    Ouvrez un fichier texte qui permet d'écrire dans le fichier.Si le fichier n'existe pas, un nouveau fichier est créé.Ici, votre programme écrit le contenu depuis le début du fichier.Si le fichier existe, il sera tronqué à zéro et réécrit.

    a

    Ouvrez un fichier texte et écrivez dans le fichier en mode ajout.Si le fichier n'existe pas, un nouveau fichier est créé.Ici, votre programme ajoute du contenu aux fichiers que vous avez déjà.

    r+

    Ouvrez un fichier texte qui vous permet de lire et d'écrire le fichier.

    w+

    Ouvrez un fichier texte qui vous permet de lire et d'écrire le fichier.Si le fichier existe déjà, le fichier est tronqué à zéro et si le fichier n'existe pas, un nouveau fichier est créé.

    a+

    Ouvrez un fichier texte qui vous permet de lire et d'écrire le fichier.Si le fichier n'existe pas, un nouveau fichier est créé.La lecture commence au début du fichier et l'écriture se fait uniquement en mode ajout.

    S'il s'agit d'un fichier binaire traité, utilisez le mode d'accès suivant pour remplacer ce qui précède :

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    dossier clos

    Pour fermer le fichier, veuillez utiliser la fonction fclose().Le prototype de la fonction est le suivant :

    int fclose ( FICHIER *fp );

    • Si le fichier est fermé avec succès, la fonction fclose() renvoie zéro, et si l'erreur renvoie EOF.Cette fonction, en fait, supprime les données du tampon, ferme le fichier et libère toute la mémoire utilisée pour ce fichier.EOF est une constante définie dans le fichier d'en-tête stdio.h

    La bibliothèque standard C fournit diverses fonctions pour lire et écrire des fichiers par caractères ou sous forme de chaîne de longueur fixe.

    Ecrire dans le fichier

    Voici les fonctions les plus simples pour écrire des caractères dans le flux :

    int fputc ( int c , FICHIER *fp );

    La fonction fputc () écrit la valeur de caractère du paramètre c dans le flux de sortie vers lequel pointe fp.Si les écritures réussissent, il renvoie le caractère écrit et l'EOF si une erreur se produit.Vous pouvez utiliser la fonction suivante pour écrire une chaîne se terminant par un null dans le flux :

    int fputs ( const char *s , FILE *fp );

    La fonction fputs() écrit la chaîne s dans le flux de sortie vers lequel pointe fp.Si les écritures réussissent, il renvoie une valeur non négative et l'EOF si une erreur se produit.Vous pouvez également utiliser la fonction de int fprintf (FILE * fp, const char * format,...) écrit une chaîne dans le fichier.Essayez l'exemple suivant :

    Remarque :Assurez-vous que vous disposez d'un répertoire tmp disponible, et s'il n'existe pas, vous devez d'abord le créer sur votre ordinateur.

    /tmp est généralement un répertoire temporaire sur le système Linux.Si vous exécutez sur le système Windows, vous devez le modifier dans un répertoire existant dans l'environnement local, tel que : C: \ tmp, D: \ tmp, etc.

    exemple vivant

    #inclureint main () { FICHIER *fp = NULL ;fp = fopen ("/tmp/test.txt ", "w+");fprintf (fp , "Ceci teste fprintf...\n ");fputs ("Ceci teste fputs...\n ", fp );fclose (fp );}

    Lorsque le code ci-dessus est compilé et exécuté, il crée un nouveau fichier test.txt dans le répertoire /tmp.Et écrit sur deux lignes en utilisant deux fonctions différentes.Lisons ensuite ce fichier.

    Lire le dossier

    Voici la fonction la plus simple pour lire un seul caractère d'un fichier :

    int fgetc ( FICHIER * fp );

    La fonction fgetc () lit un caractère du fichier d'entrée vers lequel pointe fp.La valeur de retour est le caractère lu et l'EOF en cas d'erreur.La fonction suivante permet de lire une chaîne depuis un flux :

    char *fgets ( char *buf , int n , FICHIER *fp );

    La fonction fgets() lit n-1 caractères du flux d'entrée dirigé par fp.Il copie la chaîne lue dans le tampon buf et ajoute un caractère nul à la fin pour terminer la chaîne.

    Si cette fonction rencontre un caractère de ligne brisée '\n' ou l'EOF de fin de fichier avant de lire le dernier caractère, alors ne revient qu'aux caractères lus, y compris les sauts de ligne.Vous pouvez également utiliser la fonction int fscanf (FILE * fp, const char * format,...) pour lire la chaîne du fichier, mais elle arrête la lecture lorsqu'elle rencontre le premier espace et le saut de ligne.

    exemple vivant

    #inclureint main () { FICHIER *fp = NULL ;chamois [255] ;fp = fopen ("/tmp/test.txt ", "r ");fscanf (fp , "%s ", buff );printf ("1 : %s \n ", chamois );fgets (buff , 255, (FILE *)fp );printf ("2 : %s \n ", chamois );fgets (buff , 255, (FILE *)fp );printf ("3 : %s \n ", chamois );fclose (fp );}

    Lorsque le code ci-dessus est compilé et exécuté, il lit les fichiers créés dans la section précédente, produisant les résultats suivants :

    1 : Ce 2 : teste fprintf...

    3: Ceci teste les fputs...

    Tout d'abord, la méthode de fscanf() ne lit que This .parce qu'elle rencontre un espace à l'arrière.Deuxièmement, appelez la fonction fgets() pour lire la partie restante jusqu'à la fin de la ligne.Enfin, appelez fgets() pour lire complètement la deuxième ligne.

    Fonction E/S binaire

    Les deux fonctions suivantes sont utilisées pour l'entrée et la sortie binaire :

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    Les deux fonctions sont en lecture et en écriture pour les blocs de stockage, généralement des tableaux ou des structures.

    Ci-dessus, la lecture et l'écriture de fichiers C appartiennent à HDV Phoelectron Technology Ltd., une opération technique logicielle.Et la société pour les équipements liés au réseau (tels que : ACONU/ communicationONU/ intelligentONU/ fibreONU, etc.) a réuni une équipe logicielle puissante, pour que chaque client personnalise les demandes exclusives qui en ont besoin, laissez également nos produits plus intelligents et avancés.



    web聊天