begin process at 2012 05 30 15:09:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Récupération d'un mot aléatoire depuis un fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupération d'un mot aléatoire depuis un fichier texte

jeudi 18 novembre 2010 à 16:51:13 | Récupération d'un mot aléatoire depuis un fichier texte

Mornaloce

Bonjour à tous. Voilà je vous explique mon problème. J'aimerais faire un petit programme qui permet de récupérer un mot aléatoirement dans un fichier texte puis de demander à l'utilisateur si ce mot est féminin ou masculin (réponse qui sera au préalable inscrite aussi dans le fichier texte). Ma question est donc : comment récupérer un mot aléatoirement (ou plus précisément une ligne de mon fichier texte) ?

Merci d'avance pour vos réponses.
jeudi 18 novembre 2010 à 17:10:03 | Re : Récupération d'un mot aléatoire depuis un fichier texte

CptPingu

Administrateur CodeS-SourceS
Pour récupérer une ligne dans un fichier texte, tu peux utiliser "fgetline".
"srand" te permet d'initialiser le générateur de nombre aléatoire (à n'appeler qu'une seul fois au début de ton main), et "rand" te permet d'obtenir un nombre aléatoire.

A partir de ces 3 informations, il devrait être aisé pour toi de réaliser ce que tu veux. Si tu es bloqué, poste ton code pour qu'on le corrige/améliore.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
lundi 20 décembre 2010 à 19:53:46 | Re : Récupération d'un mot aléatoire depuis un fichier texte

Mornaloce

Désolé de ne répondre que maintenant mais j'avais d'autre trucs à faire récemment donc j'avais un peu laisser tomber ce projet.

Merci de ta réponse CptPingu. J'ai essayé d'utiliser ta fonction mais j'ai pas réussi à l'utilisé correctement. Je met mon code pour que ce soit plus simple.

Main :
int main()
{
char mot;
char ligne;
int position_espace;

ligne = chargerMot();
//position_espace = strrpos(ligne, " ");

printf(mot + "\n");
return 0;
}

Fonction chargerMot:
char chargerMot()
{
FILE* fichier = NULL;
int ligne;
int i = 0;
char mot;


srand(time(NULL));
ligne = rand();
//chiffre pris au hasard par l'ordinateur

//ligne = 2;

fichier = fopen("listeMot.txt", "r");
if (fichier == NULL)
return "";

else
{
mot = fgetln(fichier, ligne);
fclose(fichier);
return mot;
}
}
mardi 21 décembre 2010 à 09:31:06 | Re : Récupération d'un mot aléatoire depuis un fichier texte

buno

Administrateur CodeS-SourceS
Yop!
Sauf erreur de ma part, rand) retourne une valeur entre 0 et 1. Il faut donc multiplier cette valeur par le nombre de lignes

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
mardi 21 décembre 2010 à 15:58:55 | Re : Récupération d'un mot aléatoire depuis un fichier texte

Mornaloce

Apparemment non ça ne renvoie pas une valeur entre 0 et 1 mais ça peut renvoyer n'importe quoi donc il faut quand même que je le limite au nombres de lignes qu'il y a dans mon fichier, tu saurais comment faire ?

Sinon à part ça quand je compile mon code ça me renvoie des erreurs sur le fgetln.
mardi 21 décembre 2010 à 16:01:39 | Re : Récupération d'un mot aléatoire depuis un fichier texte

CptPingu

Administrateur CodeS-SourceS
Entre 0 et "rand max" avec rand max qui vaut au moins 32767.
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 21 décembre 2010 à 18:31:15 | Re : Récupération d'un mot aléatoire depuis un fichier texte

Mornaloce

Merci pour l'info CptPingu. J'ai réussi (enfin je pense) à utiliser le rand comme je le voulais. mais j'ai toujours une ereur sur la fonction que tu m'a proposé,soit : fgetln ou fgetline c'est pareil. En fait ce n'est pas reconnus par mon IDE car les deux fonctions ci dessus ne sont pas intégrées dans mon stdio.h

Je me suis donc rabattu sur la fonction fgets mais je n'arrive pas bien à comprendre comment l'utiliser, pourrais-tu me renseigner ?
Voilà mon code modifier pour la fonction chargerMot():
char chargerMot()
{
FILE* fichier = NULL;
int ligne = 0;
int i = 0;
int j = 0;
char mot = NULL;
int nb_ligne = 0;
int c = 0;
char recup = NULL;

srand(time(NULL));

fichier = fopen("listeMot.txt", "r");
if (fichier == NULL)
return NULL;

else
{
while((c = fgetc(fichier)) != EOF){
if(c == '\n')
{
++nb_ligne;
if(i > j)
j = i;
i = 0;
}
else
i++;
}
++nb_ligne;
if(i > j)
j = i;
i = 0;

//chiffre pris au hasard par l'ordinateur
ligne = rand() %nb_ligne + 1;
if (ligne == 0)
ligne = 1;

fgets(mot, j, fichier);

fclose(fichier);
return mot;
}
}
jeudi 23 décembre 2010 à 01:03:08 | Re : Récupération d'un mot aléatoire depuis un fichier texte

Mornaloce

Bon y a personne pour m'aider alors ?
jeudi 23 décembre 2010 à 10:25:38 | Re : Récupération d'un mot aléatoire depuis un fichier texte

CptPingu

Administrateur CodeS-SourceS
J'avais oublié que fgetline n'était pas portable. Il est présent sur les compilateurs gcc sous Unix.

Tu peux néanmoins récupérer une fonction fgetline ici:
http://www.cpax.org.uk/prg/writings/fgetline.c
http://www.cpax.org.uk/prg/writings/fgetdata.h

Ça te permettra d'avancer.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 23 décembre 2010 à 10:29:49 | Re : Récupération d'un mot aléatoire depuis un fichier texte

buno

Administrateur CodeS-SourceS
Sinon, fgets()

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo

1 2 3

Cette discussion est classée dans : fichier, texte, aléatoire, mot, récupération


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'un fichier texte en C [ par toto000 ] Bonjour, j'ai un fichier texte avec un mot par ligne et je voudrai mettre ces mots dans un tableau de telle sorte que le premier mot soit dans la prem récupération d'un fichier texte [ par fab3131 ] J'aimerais savoir comment récupérer un fichier texte sur le disque dur, à partir d'un bouton récupérer je suis sous visual c++ .netmerci de vot Fichier texte [ par spike666 ] Etant tres nul... et ne preférant pas chercher 3h des morceaux de codes pour finir sur un truc ki marchera pas je vais demander directement ce que je afficher les mots d'un fichier texte [ par cyrina84 ] Bonjours à tous les developpeurs icic présent, J'ai un probleme que je souffre depuis 3jours et j'espere que vous m'aidiez. Donc voila J'ai fichier te éliminer les mots vides d'un fichier texte [ par mervat ] bonjour, j'ai un petit truc qui me bloque, je veux éliminer du fichier texte in les mots qui existent dans le fichier texte motvide et mettre le résul numéroter les phrases d'un fichier texte et les réécrire dans un autre fichier [ par mervat ] bonjour, les instructions ci dessous me permettent en principe de copier un fichier texte dans un autre fichier en numérotant ses phrases, [code=cpp] lecture fichier texte et mettre le resulat dans un tableau. [ par walidaydi ] bonjour, j'ai un fichier texte qui contient des nombres réels séparés par un espace. comme ca: 124.31611622563169 161.22159929707496 186.9616408968881 comparer les mots d'un fichier texte aux éléments d'une liste chaînée (c++) [ par mervat ] [^^happy10] ce programme permet de créer une liste de mots à partir d'un fichier texte"in1" et puis éliminer les mots qui existent dans la liste du fi Ecriture Fichier Texte (avec ofstream) [ par baptchr55 ] Bonjour à tous... Je souhaiterais stocker dans un fichier texte l'ensemble des données que je reçois (par le biais d'un socket cpp). à savoir j'ai es Lecture de ligne dans un fichier texte sous windows et unix [ par moumouteb ] Bonjour, Je développe un code qui doit tourner sous Windows et UNIX. J'utilise la fonction getline() pour lire un fichier texte. Et bien sûr suivant


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales