Aller a une ligne precise d'un fichier txt et la lire
Résolu
roxas_3ms
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
roxas_3ms Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
roxas_3ms Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
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 ++
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 ++
A voir également:
- Aller a une ligne precise d'un fichier txt et la lire
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Aller à la ligne excel - Guide
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:
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;
}