Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compteur de ligne (debutant) Solved

Sujet résolu
    15 avril 2018 à 18:50:25

    Bonjour à tous et à ceux qui prendront le temps de m'aider. Je suis débutant en C++ je suis le cours d'openclassroom j'en suis arrivé à "C++ - Semaine 1 - Mot mystère plus". J'ai réussi les deux premières améliorations mais je suis bloqué à la troisième. Je suis sensé prendre un mot de manière aléatoire dans un fichier dictionnaire qui est le suivant. http://www.siteduzero.com/uploads/fr/ftp/mateo21/cpp/dico.zip

    Pour ce qui est de la partie aléatoire je n'ai pas de problème. Seulement pour la partie compter le total de mots (il y a un mot par ligne), j'ai écrit ce code mais je ne sais pour quelle raison il m'affiche en permanence 1. 

    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <fstream>
    
    using namespace std;
    
    
    int main() // Fonction Prise d'un mot random dans le dico.
    {
        string motDuDico; // Un mot du dico
        ifstream fluxDico("C:/Users/DFT_Esol/Desktop/ProjetC++/tpLettreAmeliore/dico.txt"); // On ouvre le fichier
        int nombreLignes(0); //Variable du nombre de lignes/et donc de mots.
        while (getline(fluxDico, motDuDico)); // Tant que getline peut prendre un nouveau mot du dico donc une nouvelle ligne.
        {
            ++nombreLignes; // La variable ajoute +1 a chaque mot ajoute.
        }
        cout << nombreLignes;
        return 0;
    }
    
    


    Voila, merci beaucoup à ceux qui auront la gentillesse de me dépanner je ne vois clairement pas où je pêche. 

    Bonne journée/soirée à vous.

    -
    Edité par Esol_Dft 16 avril 2018 à 1:41:29

    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2018 à 21:11:51

      Salut

      Le cours de openclasseroms est obsolète et donc plus à jour depuis plusieurs années, voici  un cours de C++ moderne à jour et en français malgré qu'il soit encore à l'état d'ébauche : http://guillaume.belz.free.fr/doku.php?id=programmez_avec_le_langage_c

      L'utilisation de using namespace std est une mauvaise pratique qui plus tard risquera de te causer quelques soucis.

      Ta variable contenant le nombre de ligne ici ne peut pas être négatif car elle sera comprise entre 0 et X, il doit être donc non signé (ça veut dire qu'il sera toujours positif, ça te donne une indication à toi et à ton compilateur qui produira un code de meilleur qualité).

      int unsigned nombreLignes {0};

      Sinon pour ton problème je pense que ça vient de la ligne 15, ton point-virgule à la boucle.

      -
      Edité par XxAnoth-ChaxX 15 avril 2018 à 21:18:07

      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2018 à 0:41:22

        Merci de ton aide, j'ai réussi à identifier mieux le problème, cela venait de l'ouverture du flux. Je ne sais pas pourquoi mais il semblerait que le fichier était capricieux. Je me suis contenté de mettre le chemin dans une string const puis de spécifier la string en chemin et cela fonctionne. Bonne soirée à toi.
        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2018 à 16:50:11

          De rien.

          N'oublie pas de mettre ton sujet en "Résolu", tout en haut de ton premier message tu devrais avoir un bouton "Sujet résolu" à cliquer ;)

          • Partager sur Facebook
          • Partager sur Twitter

          Compteur de ligne (debutant) Solved

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown