Notions de base de l'accès de fichier séquentiel dans la programmation de c

La façon la plus simple que l'information de programmation C est stocké dans un fichier est séquentiellement,

Sommaire

un octet après l'autre. Le fichier contient une longue flux de données.

L'accès au fichier dans C est simplement une autre forme de I / O. Plutôt que d'aller à l'écran, l'entrée ou la sortie passe dans un fichier. Un fichier est ouvert en utilisant les fonction fopen ():

gérer = fopen (nom de fichier, mode) -

La fonction fopen () nécessite deux arguments, les deux chaînes. Le premier est un nom de fichier- la seconde est une mode. La fonction fopen () renvoie un fichier manipuler, qui est un pointeur utilisé pour référencer le fichier. Ce pointeur est un type de variable fichier.

ModeOuvrir un fichier pourCréer un fichier?Remarques
"un"AjoutOuiIl ajoute à la fin d'un file- un fichier existant est créé si itdoesn't existe.
"A +"L'ajout et la lectureOuiL'information est ajoutée à la fin du fichier.
"r"ReadingNonSi le fichier ne existe pas, fopen () retourne une erreur.
"r +"Lecture et écritureNonSi le fichier ne existe pas, une erreur est renvoyée.
"w"RédactionOuiLe fichier existant est écrasé si le même nom est utilisé.
"+ w"Écriture et la lectureOuiLe fichier existant est écrasé.

La mode est une chaîne. Même quand un seul caractère est spécifié, il doit être placé entre guillemets.

Après le fichier est ouvert, vous utilisez le manipuler variable pour référencer le fichier que vous lire et écrire. Le fichier I / O fonctions sont similaires à leur niveau I / O homologues, mais avec un préfixe de f. Pour écrire dans un fichier, vous pouvez utiliser la fprintf (), fputs (), fputchar (), et des fonctions similaires. La lecture d'un fichier utilise les fscanf (), fgets (), et des fonctions similaires.

Vous fermez le fichier en utilisant la fonction fclose () avec la poignée de fichier comme argument.

Comment écrire du texte dans un fichier

Ecrire ce fichier montre le processus de base de la création d'un nouveau fichier, l'écriture de texte dans ce fichier, puis en fermant l'accès aux fichiers.

Écrire dans ce fichier

#include #include int main () {FILE * fh-fh = fopen ("hello.txt", "w") - si (FH == null) {puts ("Impossible d'ouvrir le fichier!") - sortie (1) -} fprintf (fh, "Regardez ce que je fait! n") - fclose (fh) -retour (0) -}



Line 6 crée le handle de fichier, fh. Il est un pointeur. Les magasins de pointeur le résultat de la fonction fopen () de la ligne 8. Le hello.txt de fichier est créé en utilisant le mode "w" (en écriture). Si le fichier existe, il est écrasé.

L'instruction if vérifie pour confirmer que le fichier a été ouvert correctement. Si elle était pas, la valeur de la FH est NULL, et des mesures appropriées sont prises.

La fonction fprintf () écrit le texte dans le fichier à la ligne 14. Le format est le même que pour printf (), bien que le descripteur de fichier doit être inclus comme un argument.

Enfin, la ligne 15 ferme le fichier en utilisant la fonction fclose (). Cette déclaration est une étape nécessaire pour toute la programmation d'accès de fichier.

Exercice 1: Copiez le code source de ce fichier dans Écrivez votre éditeur. Construire et exécuter le programme.

La sortie du programme passe à un fichier, de sorte que vous ne vois rien affiché quand il est exécuté. Utilisez le navigateur de fichiers de votre ordinateur pour localiser le fichier et l'ouvrir. Ou vous pouvez écrire un programme qui lit le texte à partir de ce même fichier.

Comment lire le texte d'un fichier

Les fonctions standard C de lecture des textes sont utilisés pour lire le texte d'un fichier tout comme ils lisent le texte à partir du clavier. Pour lire le texte un caractère à la fois, utilisez la fonction de fgetc ().

LIRE CE DOSSIER

#include #include int main () {FILE * fh-int ch-fh = fopen ("Hello.txt", "r") - si (fh == null) {puts ("Impossible d'ouvrir le fichier!" ) -exit (1) -} while ((ch = fgetc (FH)) = EOF) putchar (ch) -fclose (fh) -retour (0) -!}

Ligne 9 Lire ce fichier ouvre le fichier hello.txt en lecture seule. Le fichier doit exister, ou bien une erreur se produit.

La boucle while à la ligne 15 affiche le contenu du fichier un caractère à la fois. La fonction fgetc () lit un caractère du fichier identifié par poignée FH. Ce caractère est stocké dans ch variable. Le résultat est comparé à la constante de fin de fichier. Quand il ya un match, le fichier a été complètement lire et la boucle while arrête. Sinon, le caractère qui est lu est affiché sur la ligne 16.

Exercice 2: Créer un nouveau programme en utilisant le code de source indiqué sur la lecture du document. Construire et exécuter.

Le programme affiche le contenu du fichier créé par l'exercice 1- contraire, vous voyez le message d'erreur.

Exercice 3: Modifier votre code source de l'exercice 1 pour écrire une deuxième chaîne dans le fichier. Ajouter la déclaration suivante après la ligne 14:

fputs («Mon programme de C a écrit ce fichier n"., FH) -

Contrairement à l'utilisation des puts () déclaration, vous devez spécifier un caractère de nouvelle ligne pour fputs () de sortie. En outre, l'argument de la poignée de fichier apparaît après la chaîne, ce qui est inhabituel pour une fonction de fichier de langage C.

Les fonctions fprintf deux fichiers-écriture () et fputs () écrire du texte dans le fichier séquentiellement, un caractère après l'autre. Le processus fonctionne exactement comme l'écriture du texte à l'écran, mais à la place de ces caractères sont enregistrés dans un fichier dans le stockage permanent.

La fonction fgets () lit une chaîne entière de texte à partir d'un fichier. Pour le faire fonctionner, vous avez besoin d'un tampon d'entrée, le nombre de caractères à lire, et le descripteur de fichier.

Avalant des chaînes de texte

#include #include int main tampon () {FILE * fh-char [64] -fh = fopen ("Hello.txt", "r") - si (fh == null) {puts ("Impossible d'ouvrir ce que déposer! ") - sortie (1) -} while (fgets (tampon, 64, fh)) printf ("% s ", tampon) -fclose (fh) -retour (0) -}

La fonction fgets () apparaît à la ligne 15 que l'état de la boucle while. Voilà parce que fgets () renvoie un pointeur vers la chaîne qui est lu, et quand aucune chaîne est lue, elle renvoie une valeur NULL. Cette valeur arrête la boucle. Sinon, la fonction printf () à la ligne 16 affiche l'entrée.

La taille de la mémoire tampon et la taille des caractères lus en avalant des chaînes de texte sont identiques. Voilà parce que le 0 à la fin de la chaîne est lue à partir du fichier et ne soit pas interprétée comme un marqueur de fin de fichier.

Exercice 4: Tapez le code source à partir avalant des chaînes de texte dans votre éditeur. Construire et exécuter.


» » » » Notions de base de l'accès de fichier séquentiel dans la programmation de c