Se connecter / S'enregistrer
Votre question

C -> Code qui n'affiche absolument rien

Tags :
  • Time
  • Programmation
Dernière réponse : dans Programmation
17 Juillet 2006 09:25:36

Bonjour!

Eh ben voila, c'est pas compliqué, mon code est censé afficher le mot généré à partir de mon dictionnaire, mais il n'affiche absolument rien, même pas le "Appuyez sur une touche pour continuer"...

Voici le code:

main.c
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5. #include "dico.h"
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.  
  10. char mot_secret[100] = {0};
  11. if(!choisir_mot(mot_secret))
  12. {
  13. printf("ERREUR\n");
  14. exit(0);
  15. }
  16. printf("%s\n", mot_secret);
  17.  
  18. system("PAUSE");
  19. return 0;
  20. }


dico.c
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <string.h>
  5. #include "dico.h"
  6.  
  7. int choisir_mot(char *mot_choisi)
  8. {
  9. FILE* dico = NULL;
  10.  
  11. long nb_mots = 0, num_mot = 0;
  12. int caractere = 0;
  13.  
  14. dico = fopen("dico.txt", "r");
  15. if(dico == NULL)
  16. {
  17. exit(0);
  18. }
  19. do
  20. {
  21. caractere = fgetc(dico);
  22. if (caractere == '\n')
  23. {
  24. nb_mots++;
  25. }
  26. } while(caractere != EOF);
  27.  
  28. num_mot = nombre_aleatoire(nb_mots);
  29.  
  30. while(num_mot > 0)
  31. {
  32. rewind(dico);
  33. caractere = fgetc(dico);
  34. if(caractere == '\n')
  35. {
  36. num_mot--;
  37. }
  38. }
  39. fgets(mot_choisi, 100, dico);
  40. mot_choisi[strlen(mot_choisi) - 1] = '\0';
  41. fclose(dico);
  42. return 1;
  43. }
  44.  
  45. long nombre_aleatoire(long max)
  46. {
  47. srand(time(NULL));
  48. return(rand() % max);
  49. }


dico.h
  1. #ifndef DEF_DICO
  2. #define DEF_DICO
  3.  
  4. int choisir_mot(char *mot_choisi);
  5. long nombre_aleatoire(long max);
  6.  
  7. #endif


Merci de m'aider, car j'y comprend rien!!! :-o

Autres pages sur : code affiche absolument rien

a b L Programmation
17 Juillet 2006 13:02:03

Un crash avant la pause ?
17 Juillet 2006 13:15:08

Ton fichier dico.txt n'est peut-être pas trouvé. Ecrire un petit message pour indiquer cela pourrait être utile, au lieu d'un simple exit(0);.

  1. do
  2. {
  3. caractere = fgetc(dico);
  4. if (caractere == '\n')
  5. {
  6. nb_mots++;
  7. }
  8. } while(caractere != EOF);
  9.  
  10. num_mot = nombre_aleatoire(nb_mots);
  11.  
  12. while(num_mot > 0)
  13. {
  14. rewind(dico);
  15. caractere = fgetc(dico);
  16. if(caractere == '\n')
  17. {
  18. num_mot--;
  19. }
  20. }


Je comprends pas ta deuxième boucle... Et si tu remettais directement tes variables à 0 ? :-) En même temps, il y a sûrement un truc qui m'échappe !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS