Función que crea una palabra secreta en lenguaje C
kassy
-
kassy -
kassy -
```html
Bonjour,
voici une fonction qui permet de creer un mot secret , je voudrais savoir a quoi sert la boucle for dans ce progrmme, merci de bien vouloir m'aider à mieux comprendre cette fonction et merci
174. void creerMotSecret(char *mot) {
175.
176.
177.
178. //Déclaration de nos variables locales
179.
180. FILE *dictionnaire = NULL;
181.
182. int i = 0, positionMot = 0;
183.
184.
185.
186. //Ouverture du fichier en lecture seule
187.
188. dictionnaire = fopen("dictionnaire.dat","r");
189.
190.
191.
192. //On prend un nombre aléatoire savoir la position du mot du dictionnaire que l'on veut
193.
194. //(nombre entre min_position et max_position)
195.
196. srand(time(NULL)); //Initialisation
197.
198. positionMot = (rand() % (MAX_POSITION - MIN_POSITION + 1)) + MIN_POSITION;
199.
200.
201.
202.
203. //On chosit le mot du dico qui est à la position "positionMot"
204.
205. for(i = 0; i<positionMot; i++) {
206.
207. fgets(mot,1000,dictionnaire);
208.
209. }
210.
211.
212.
213. //Fermeture du fichier
214.
215. fclose(dictionnaire);
216.
217.
218.
219. return; //Fonction "void" donc on ne retourne rien
voici une fonction qui permet de creer un mot secret , je voudrais savoir a quoi sert la boucle for dans ce progrmme, merci de bien vouloir m'aider à mieux comprendre cette fonction et merci
174. void creerMotSecret(char *mot) {
175.
176.
177.
178. //Déclaration de nos variables locales
179.
180. FILE *dictionnaire = NULL;
181.
182. int i = 0, positionMot = 0;
183.
184.
185.
186. //Ouverture du fichier en lecture seule
187.
188. dictionnaire = fopen("dictionnaire.dat","r");
189.
190.
191.
192. //On prend un nombre aléatoire savoir la position du mot du dictionnaire que l'on veut
193.
194. //(nombre entre min_position et max_position)
195.
196. srand(time(NULL)); //Initialisation
197.
198. positionMot = (rand() % (MAX_POSITION - MIN_POSITION + 1)) + MIN_POSITION;
199.
200.
201.
202.
203. //On chosit le mot du dico qui est à la position "positionMot"
204.
205. for(i = 0; i<positionMot; i++) {
206.
207. fgets(mot,1000,dictionnaire);
208.
209. }
210.
211.
212.
213. //Fermeture du fichier
214.
215. fclose(dictionnaire);
216.
217.
218.
219. return; //Fonction "void" donc on ne retourne rien
Configuration: Windows Vista Internet Explorer 7.0```
5 respuestas
-
-
¡Gracias Fiddy, finalmente he entendido!
En lo que respecta a Bigmat o no sé qué, gente como tú no debería andar en foros respetuosos como este, porque ensucian la atmósfera. -
positionMot = (rand() % (MAX_POSITION - MIN_POSITION + 1)) + MIN_POSITION;
Esta instrucción permite elegir un número pseudoaleatorio comprendido entre MIN_POSITION y MAX_POSITION.
for(i = 0; i<positionMot; i++) {
Esta instrucción se llevará a cabo mientras i<positionMot. Así, cuando i sea igual a positionMot, el bucle se detendrá. Dado que en cada iteración i aumenta en 1, habrá positionMot iteraciones.
fgets(mot,1000,dictionnaire);
Esta instrucción permite leer una línea del archivo. Si ejecutas varias veces esta instrucción, leerás las líneas sucesivamente. Así, dado que fgets se encuentra dentro del bucle for, leerás la línea correspondiente al número positionMot.
--
Google es tu amigo -
Hola,
205. for(i = 0; i<positionMot; i++) { 206. 207. fgets(mot,1000,dictionnaire); 208. 209. }
Este bucle va a leer en dictionnaire.dat una línea y almacenarla en mot. Y se repite positionMot veces. Así obtendremos la línea número positionMot en el archivo. De ahí la palabra secreta.
219. return; //Función "void" así que no retornamos nada
Instrucción completamente inútil en este caso ;-))).
--
Google es tu amigo. -
soy todavía principiante y quizás eso es lo que hace que no haya entendido exactamente, ¿podría usted tener la amabilidad de explicarme un poco más?
gracias