Maison > développement back-end > C++ > le corps du texte

Comment accéder directement à une ligne spécifique dans un fichier texte en utilisant C ?

Mary-Kate Olsen
Libérer: 2024-11-06 07:13:02
original
693 Les gens l'ont consulté

How to Directly Access a Specific Line in a Text File Using C  ?

Naviguer dans des fichiers texte en C : accéder à des lignes spécifiques

L'ouverture de fichiers texte avec fstream permet d'accéder au contenu du fichier. Cependant, il est parfois nécessaire de parcourir ou d'accéder à une ligne spécifique du fichier.

Naviguer vers une ligne spécifique

Pour accéder à une ligne spécifique, telle qu'une ligne 8, une méthode simple consiste à utiliser une approche basée sur une boucle :

<code class="cpp">#include <fstream>
#include <limits>

std::fstream& GotoLine(std::fstream& file, unsigned int num) {
    file.seekg(std::ios::beg);
    for (int i = 0; i < num - 1; ++i) {
        file.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
    return file;
}</code>
Copier après la connexion

Cette fonction prend un flux de fichier et un numéro de ligne comme paramètres. Il définit le pointeur de recherche du fichier au début de la ligne spécifiée.

Comprendre le code

  1. file.seekg(std::ios:: beg); : définit le pointeur de recherche sur le début du fichier.
  2. for (int i = 0; i < num - 1; i){ : parcourt chaque ligne jusqu'au numéro de ligne souhaité.
  3. file.ignore(std::numeric_limits::max(), 'n'); : consomme et supprime les caractères jusqu'à ce qu'une nouvelle ligne soit trouvée ou que le flux se termine.
  4. Après avoir terminé la boucle, le pointeur de recherche est positionné au début de la ligne spécifiée.

Exemple d'utilisation

Pour tester cette approche, considérons un fichier texte avec le contenu suivant :

1
2
3
4
5
6
7
8
9
10
Copier après la connexion

Le programme suivant montre comment accéder à la ligne 8 :

<code class="cpp">int main() {
    using namespace std;
    fstream file("bla.txt");

    GotoLine(file, 8);

    string line8;
    file >> line8;

    cout << line8;  // Output: 8
    cin.get();
    return 0;
}</code>
Copier après la connexion

En utilisant cette méthode, vous pouvez facilement accéder à une ligne spécifique dans un fichier texte. Cette approche est particulièrement utile lorsqu'il s'agit de fichiers volumineux ou lorsqu'il faut accéder à des informations spécifiques sans analyser l'intégralité du fichier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal