Je voudrais savoir comment faire pour lire une ligne aleatoire dans un fichier ou encore comment stocker ses lignes dans un tableaux dynamiques. je suis nouveau dans C++
Je voudrais savoir comment faire pour lire une ligne aleatoire dans un fichier ou encore comment stocker ses lignes dans un tableaux dynamiques. je suis nouveau dans C++
tableau dynamique : std::vector
lire un fichier : std::ifstream
aléatoire : std::random
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Si tu connais le nombre de ligne dans ton fichier tu pourrais faire un générateur de nombre aléatoire qui te donne un nombre que tu considèrera comme la ligne voulu et ensuite tu te positionne à la ligne en fonction du nombre et tu la lie.
Il s'agit d'une solution parmi tant d'autre. Pour le principe que je t'ai donné les bibliothèques de Bousk te seront nécessaire
Salut,Non!!!! Surtout pas!!!
- Si le nombre de caractères par ligne n'est pas connu, comment détermines tu la position du curseur de lecteur pour le placer au début de la ligne sélectionnée
- Comment vas-tu gérer les différents retours à la ligne qui peuvent être utilisés (CR / CRLF / LF)
- L'acces au contenu d'un disque dur compte parmi les accès les plus lents que l'on puisse trouver sur un ordinateur (à l'exception d'un accès réseau). Si l'utilisation du disque par le système bouscule la mise en cache de ton ficher ou que ton fichier est vraiment très gros, l'utilisateur, il fait quoi en attendant que tu accède à la ligne qui t'intéresse
Il boit un café
Et après le cinquième
.. le pc passe par la fenêtre :p
Non, décidément, on a toutes les raisons de refuser une telle proposition. D'autant plus qu'il y a clairement plus facile à savoir :
1- Tu charge toutes les lignes de ton fichier dans un tableau de taille dynamique (std::vector<std::string> semble être ce qu'il te faut)
2- a =Soit tu sélection l'indice d'une ligne de manière aléatoire, puis tu y accède au travers de2- b: soit (et c'est encore mieux), tu mélange le tableau, comme si c'était un jeu de cartes. Et tu prend chaque ligne dans l'ordre ou elles se trouvent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 assert(lindiceSelectionne < leTableau.size() && "indice out of bound"): laLigne = leTableau[lIndiceSelectionne]; /*utilisation de laLigne */
Bousk a donné les liens vers toutes les ressources qui te permettront de faire de la sorte![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager