Recherche d'une ligne spécifique dans un fichier texte avec C
Avec la bibliothèque fstream en C, il devient pratique de lire et d'écrire dans des fichiers texte . Cependant, accéder directement à une ligne spécifique peut être difficile. Cette question explore une solution potentielle à ce problème.
Problème :
Si un fichier texte est ouvert à l'aide de fstream, existe-t-il un moyen simple d'accéder à une ligne particulière , comme la ligne 8 ?
Réponse :
Bien que fstream fournisse un moyen de définir le pointeur de recherche du fichier, il ne permet pas directement de passer à une ligne spécifique . Une approche pratique consiste à parcourir le fichier en ignorant toutes les lignes jusqu'à ce que la ligne souhaitée soit atteinte. Voici comment cela peut être réalisé :
<code class="cpp">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>
Cette fonction prend le fichier et le numéro de ligne qu'elle doit rechercher et renvoie l'objet fichier.
Exemple :
Considérons un fichier texte avec le contenu suivant :
1 2 3 4 5 6 7 8 9 10
Le programme C suivant montre comment utiliser la fonction GotoLine :
<code class="cpp">int main() { using namespace std; fstream file("bla.txt"); GotoLine(file, 8); string line8; file >> line8; cout << line8; cin.get(); return 0; }</code>
Sortie :
8
Dans cet exemple, le programme lit la huitième ligne du fichier texte et imprime le contenu, qui est "8".
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!