Résultats de 1 à 4 sur 4

Sujet : Dico, choix aléatoire d\'un mot

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    10

    Dico, choix aléatoire d\'un mot

    bonjour ,
    j\'ai tester votre prog mais ca na marche pas ,en fait mon pb c\'est que je n\'arrive pa a associer un mot a un chiffre aléatoire ,sachant que j\'ai une procedure Dico qui qui permet d\'ecrire des mot ds le fichier avec fprintf puis une fontion qui donne un chiffre aleatoirement avec rand
    votre prog m\'a afficher au premier test les 4 dernieres lettre du dernier mot lorsque rand a envoyer 2 et quelquechose comme ca Â----------------------------------------------------------- lorsqu\'il a donné une autre valeur.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Une solution me vient à l\'esprit : tu prends un nombre aléatoire compris entre 1 et le nombre de mots de ton dictionnaire. Ensuite, après avoir ouvert ton fichier et autres, tu exécutes un code type :

    Code:
    int i, rand; // on prend rand = ton nombre aléatoire
    char tmp[TAILLE_MAX+1];
    char mot[TAILLE_MAX+1];
    
    // ouverture du fichier
    
    for (i = 0; i < rand; i++)
        fscanf(fichier,\"%[^\'\\n\']s\", tmp);
    
    fscanf(fichier,\"%[^\'\\n\']s\", mot);
    
    // fermeture du fichier
    En gros, tu vas lire les premières lignes de ton fichier (fscanf sur les caractères \"tout sauf \\n\") un nombre aléatoire de fois, puis lire ton mot. Normalement tu devrais obtenir un résultat aléatoire. Essaie et dis moi ce que tu obtiens (et postes tes réponses ici, pas dans un nouveau post :wink

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    10
    bonsoir,
    j\'ai tester votre prog mais il m\'affiche comme AVERTISSEMENT:
    \"declaration de mot cache un parametre\",\"passage de arg 1 de fscanf d\'un pointeur incompatible\" je l\'ai compiler mais il m\'affiche erreur de segmentation ,j\'ai declarer fichier comme un tableau de char fallait il faire ca merci bcp de m\'aider voici en partie mon algo:
    Code:
     srand(time(NULL));
        
       dico();
       
       Nb=getNombre();
       
       printf(\"%d\",Nb);
       mot[N]=saisirmot(Nb,mot);
    
    
       getchar();    
    
    void dico(void)
     {
       FILE *fp;
       char mot[25];
       fp = fopen (\":\\\\fichier\",\"w\");
       int i;
            strcpy(mot,\"podium\");
            fprintf(fp,\"%s\\n\",mot);
            strcpy(mot,\"vacance\");
            fprintf(fp,\"%s\\n\",mot);
            strcpy(mot,\"bonbon\");
            fprintf(fp,\"%s\\n\",mot);
            strcpy(mot,\"testing\");
            fprintf(fp,\"%s\\n\",mot);
            
            fclose(fp);
     }
    
    int getNombre(void)
    {
     
      int X;
    
      X=rand()%4;
    
      return X;
    }
    
    
    char saisirmot(int X,char* mot)
    {
     
      int i;
      char tmp[N+1];
      char mot[N+1];
      char fichier[N];
      FILE *fp;
     
    
      fp = fopen (\":\\\\fichier\",\"r\");
     
     
      for(i=0;i<X;i++)
        {
          fscanf(fichier,\"%[^\\n]s\",tmp);
          fscanf(fichier,\"%[^\\n]s\",mot);
        }
       fclose(fp);
       return *mot;
    }

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    329
    Déjà, tu redéclares \'mot\' plusieures fois, en tant que char*, en tant que char[] et en tant que char[][] : évite les conflits entre les nombs de tes variables ou tu ne t\'y retrouveras plus.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé