Aller a une ligne precise d'un fichier txt et la lire [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
dimanche 27 avril 2014
Statut
Membre
Dernière intervention
11 août 2014
-
roxas_3ms
Messages postés
7
Date d'inscription
dimanche 27 avril 2014
Statut
Membre
Dernière intervention
11 août 2014
-
Bonjour,
j'ai un fichier texte avec qui fait un mot par ligne et je voudrais lire une seule ligne aléatoirement, par exemple lire le mot de la 36ème ligne et l'afficher, sans lire ou afficher les lignes précédente. j'avais pensé faire comme ceci:

int main()
{
string dico;
int ligne;
ligne = (rand() % 323577) +1;

ifstream fichier("C:/CodeBlocks/dico.txt");
if (fichier)
{
getline(fichier, ligne)
cout << ligne << endl;
}
else { cout << "ERROR: cannot open this file" << endl;}
return 0;
}

mais ça ne fonctionne pas donc je vous demande un petit coup de main ;)
merci d'avance ++

2 réponses

Salut, getline(fichier, ligne); renvoila chaine de caractere de la ligne dans "ligne" donc il ne peut pas etre un entier.
Ensuite rand a besoin d'être initialisé.
Le code suivant fonctionne mais n'est probablement pas la meilleure implémentation:
#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>
#include <time.h>

using namespace std;

int main()
{
string dico;
string ligne;
int numero_de_ligne;
srand (time(NULL)); //Initialiser le seed de rand
numero_de_ligne = rand() % 30 +1; // pour un fichier de 30 lignes
ifstream fichier("C:/dico.txt");
if (fichier)
{
int i=1;
while ( getline (fichier,ligne)&& i<=numero_de_ligne)
{
if(i==numero_de_ligne) cout << ligne << '\n';
i++;
}
fichier.close();

}
else { cout << "ERROR: cannot open this file" << endl;}
return 0;
}
Messages postés
7
Date d'inscription
dimanche 27 avril 2014
Statut
Membre
Dernière intervention
11 août 2014

ok, merci du coup de main, et tant que ça fonctionne, ça me va quand j'aurais un peu plus de bagage je le retravaillerai si nécessaire :p

encore merci, cordialement.