Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Un mastermind] Le problème concerne la saisie ;)

    14 décembre 2005 à 20:42:39

    Bonjour,
    Pour mes études, je dois faire un MasterMind, je n'ai aucun problème de type algorithmique, ce n'est pas exesivement dur si ce n'est L'IA. Par contre, j'ai un problème avec la saisie.

    J'ai fait le code suivant :
    #include <iostream>

    using namespace std;

    int main(){
      char caract;

      for(int i=0; i<5;i++){
        cout << "Entrez caractère " << i << " : ";
        cin >> caract;
        cout << caract << endl;
      }
    }


    Pour la lecture en l'ayant simplifié pour la compréhension.
    Ce vous voyez dans cet exemple si vous l'executer, c'est que vous pouvez taper plus d'un caractère à la fois et que vous pouvez les taper les 5 d'un coups.
    Le problème, c'est que dans mon cas, la personne peut taper plusieurs combinaison d'un coup.
    J'aimerais donc savoir comment faire pour obtenir uniquement les 5 caractères composant ma combinaison. Afficher la combinaison et recommencer ?


    Merci d'avance de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2005 à 20:54:11

      Tu ne peux pas avec une console conventionnelle qui te donne les caractères dans l'ordre où elle les reçoit. Il te faut une console non-canonique sous Unix/POSIX ou l'équivalent pour les autres systèmes.
      La console canonique lit ligne par ligne.

      ps : Sinon, tes espacements sont un peu laids : mets une espace avant le { entre le ) et le { et une espace après le for.
      Je te conseille aussi d'indenter à plus de 2 espaces de pas (je conseille 8 mais si c'est trop choquant pour toi utilise 4 :p) et de placer le { du main à la ligne (pour les fonctions, en vrai k&r, les { sont à la ligne mais juste pour les fonctions pas les if/while/for/etc). Je conseille aussi de placer le type de retour de la fonction à la ligne.

      int
      main(void)
      {
              int i;

              for (i = 0; i < 5; ++i) {
                      /* ... */
              }
      }

      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2005 à 20:57:06

        Merci !
        Donc je n'ai pas de possibilité de bloquer au bout d'un certains moment ou de vider le buffer ? :o
        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2005 à 21:23:00

          Euh pas vraiment et ya pas de raison de faire ça, l'user doit rester maître de sa console à priori pour une appli en console canonique le stdin est simplement un fichier comme un autre. Flusher le buffer complètement et silencieusement, il n'y a pas vraiment de moyen.
          • Partager sur Facebook
          • Partager sur Twitter

          [Un mastermind] Le problème concerne la saisie ;)

          × 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