Cet article explique comment lire un fichier entier dans un tableau. L'en-tête C ++ (bibliothèque) fstream, a la classe ifstream. La classe ifstream a obtenu des fonctions de membre surchargées. Deux de ces fonctions de membre surchargées peuvent être utilisées pour lire le fichier entier dans un tableau. Un programme pour une telle lecture devrait commencer:
#inclureLes deux premières lignes sont des directives, pas des déclarations. Le premier comprend la bibliothèque fstream pour les fonctions get (). Le second comprend la bibliothèque iOStream pour imprimer au terminal (console) et pour recevoir des caractères du clavier. La troisième ligne est une déclaration. Il insiste sur le fait que tout nom non précédé de «std ::» est de l'espace de noms standard.
Il y a un petit problème avec les fonctions get (), la longueur du tableau doit être estimée, pour être au moins un caractère de plus que le nombre de caractères dans le fichier. L'idée est d'avoir «\ 0» inclus juste après que le dernier caractère lu dans le tableau formerait une longue chaîne.
Si la longueur du tableau ne peut pas être estimée en tant que telle, alors le fichier entier doit être lu dans un autre objet tel qu'un objet String (de la classe de chaîne). Puisque l'objectif de cet article est d'expliquer comment lire dans un tableau, la taille du tableau doit être estimée.
Pour le reste de cet article, il est supposé que le nom du fichier, dont le contenu doit être lu, est txtfile.txt, dans le répertoire, dir1, dans le répertoire domestique / utilisateur.
Contenu de l'article
- Lire des caractéristiques de fichier entier par personnage
- Lire un fichier entier avec une fonction membre
- Conclusion
Lire des caractéristiques de fichier entier par personnage
La syntaxe de la fonction GET () surchargée ifstream, pour cela, est:
Basic_istreamUn segment de code de programme pour lire le caractère suivant dans le fichier est:
Char C;La première déclaration déclare la variable, C recevra chacun des caractères. La deuxième déclaration déclare le tableau qui recevra tous les personnages, un par un. La troisième ligne déclare un index pour le tableau commençant à partir de zéro pour aborder tous les éléments du tableau, qui recevra un caractère. Avec cette approche, '\ 0' peut être ajoutée après que le dernier caractère du fichier a été inclus dans le tableau.
Les parenthèses de la boucle while,
ifs.obtenir (c)où ifs est le nom de l'objet ifstream. Le caractère suivant du fichier est obtenu par la fonction Get Member et affecté à C. Après cela, le pointeur interne de l'objet ifstream pointerait vers le personnage après celui-ci lu. Lorsque la fin de fichier est atteinte, l'expression «IFS.obtenir (c) ”devient faux au lieu de vrai et donc la boucle while se termine.
Le programme suivant lira tous les caractères d'un fichier et imprimera tout le contenu du terminal:
#inclureifstream comme codé, ouvre le fichier pour la lecture.
Lire un fichier entier avec une fonction membre
La fonction de membre GET () surchargée ifstream pour lire le fichier entier, sans la boucle while, est:
Basic_istreamIl lit toujours l'ensemble du fichier caractérisé par personnage, mais ce n'est plus l'entreprise du programmeur C ++. De plus, cette fonction ajoute le caractère nul, '\ 0' au nom du programmeur, en supposant que N est au moins un caractère plus long que le contenu du fichier.
Le premier argument de cette fonction Get () surchargée est le tableau avec les mêmes contraintes (y compris l'estimation) que le tableau ci-dessus pour recevoir tous les caractères du fichier. Le deuxième argument, n, du type StreamSize est une estimation du nombre de caractères dans le fichier. Il est conseillé de faire la taille du tableau et n, le même. Il n'y a pas besoin d'une boucle de temps avec cette fonction membre.
Maintenant, une ligne dans un fichier texte se termine par la séquence d'évasion, '\ n'. Si le troisième argument est '\ n', alors seule la première ligne du fichier serait lue. Ainsi, la fonction doit être trompée avec tout caractère qui ne sera probablement pas trouvé dans le contenu du fichier. Un bon candidat pour le troisième argument, est '\ 0'. Avec cette fonction de membre surchargé, le programmeur doit avoir une certaine connaissance des caractères possibles dans le fichier afin de ne pas utiliser un caractère qui fait partie du contenu du fichier.
Le programme suivant lira tous les caractères d'un fichier avec une instruction et imprimera tout le contenu du terminal:
#inclureConclusion
Un fichier entier peut être lu dans un tableau. Cela a tout d'abord besoin de la classe C ++ Ifstream de la bibliothèque FStream. Le fichier doit être ouvert pour lire. Pour lire tous les caractères (octets) d'un fichier (un par un) dans le tableau utilisez la fonction membre ifstream,
Basic_istreamcomme l'état dans un moment en boucle. Pour lire tous les caractères (octets) d'un fichier, dans le tableau avec une fonction de membre IFSTREAM sans la boucle While, la fonction de membre IFstream doit être:
Basic_istreamN'oubliez pas de tromper la fonction au troisième argument. Avec cette fonction, le programmeur doit avoir une certaine connaissance des caractères possibles dans le fichier.