Partage
  • Partager sur Facebook
  • Partager sur Twitter

Limiter la saisie à un nombre de caractères

Le C ça rend fou

Anonyme
    28 novembre 2008 à 9:18:07

    Salut tout le monde :D

    Alors je vous explique mon problème, j'ai un projet en cours dans lequel je dois faire un jeu en C, enfin tout un tralala quoi, et je desespere car je ne trouve pas comment limiter la saisie au clavier de caractères.

    Plus clairement, quand je lance mon .exe, l'ordinateur me demander un nom pour mes personnages et je veux limiter leur nom à 20.
    Mais ce qui me pose problème c'est que je ne veux pas seulement limiter, je veux aussi que le curseur se bloque au bout de 20 caractères.
    J'ai fait de nombreuses recherches, j'ai trouvé certains points intéressant au niveau du fgets, getc ou strncpy mais rien de très concluant


    Donc si vous avez quelques idées, je suis ouverte à tout !
    Merci


    Annabelle
    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2008 à 9:44:41

      Citation : 0nn2belle

      Mais ce qui me pose problème c'est que je ne veux pas seulement limiter, je veux aussi que le curseur se bloque au bout de 20 caractères.


      En C standard, tu ne peux pas...

      Tourne toi vers une lib tierce (conio [Windows], ncurse,PDcurse [portable] et Cie.).
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        28 novembre 2008 à 9:50:53

        Est-ce que je ne peux pas plutôt compter le nombre de caractères rentrés en même temps et bloquer la saisie arrivé à un caractère butoir ? :-°
        • Partager sur Facebook
        • Partager sur Twitter
          28 novembre 2008 à 9:57:54

          Oui, mais pour cela tu as justement besoin d'une lib tierce...

          Va voir ici :
          http://www.siteduzero.com/forum-83-300 [...] nvisible.html
          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2008 à 10:01:20

            Citation : 0nn2belle


            Alors je vous explique mon problème, j'ai un projet en cours dans lequel je dois faire un jeu en C, enfin tout un tralala quoi, et je desespere car je ne trouve pas comment limiter la saisie au clavier de caractères.

            Plus clairement, quand je lance mon .exe, l'ordinateur me demander un nom pour mes personnages et je veux limiter leur nom à 20.
            Mais ce qui me pose problème c'est que je ne veux pas seulement limiter, je veux aussi que le curseur se bloque au bout de 20 caractères.


            Ce que tu veux faire n'est pas possible en C standard. Le mécanisme de saisie est prévu pour ne pas limiter la frappe, que tu puisses corriger avec BACKSPACE et que la fin de saisie soit validée par ENTER.

            Par contre, il est possible, une fois la saisie faite (avec fgets(), par exemple, et après 'nettoyage' avec la fonction fclean() dont tu trouveras le code source sur ce forum), de mesurer la longueur saisie et de retourner une erreur en cas de dépassement.

            DO
              INPUT chaine
              err := len(chaine) > 5
              IF err
                OUTPUT "erreur de saisie" EOL
              END IF
            WHILE err
            • Partager sur Facebook
            • Partager sur Twitter
            Music only !
            Anonyme
              28 novembre 2008 à 10:05:19

              Je vous aime les gens :D Vous avez tout l'amour d'une fille programmeuse lol (c'est pire qu'une fille au volant ^^)


              Par contre comment je dois faire pour utiliser le fgets et le fclean ?
              Quand j'avais essayer la première fois le fgets, visual m'a dit que j'avais une erreur sur le paramètre 3 avec machin chose en rapport avec FILE :p
              • Partager sur Facebook
              • Partager sur Twitter
                28 novembre 2008 à 10:12:18

                Citation : 0nn2belle

                Par contre comment je dois faire pour utiliser le fgets et le fclean ?
                Quand j'avais essayer la première fois le fgets, visual m'a dit que j'avais une erreur sur le paramètre 3 avec machin chose en rapport avec FILE :p


                Comme indiqué dans la documentation, le troisième paramètre permet d'indiquer à partir de quel flux on fait la lecture. Pour une saisie sur l'entrée standard, utiliser le flux stdin.

                Fait de ton mieux et poste ton code si il y a un problème.
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !
                Anonyme
                  28 novembre 2008 à 10:41:28

                  Tant que j'y suis, j'ai un autre problème, je crée un nombre aléatoire.
                  Mais le problème c'est qu'il est aléatoire qu'en fonction de l'horloge, donc si j'exécute le chiffre aléatoire rapidement et plusieurs fois, j'obtiens toujours le même chiffre.

                  Comment puis-je faire pour qu'il soit vraiment aléatoire à chaque exécution ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 novembre 2008 à 11:18:52

                    Citation : 0nn2belle

                    Tant que j'y suis, j'ai un autre problème, je crée un nombre aléatoire.
                    Mais le problème c'est qu'il est aléatoire qu'en fonction de l'horloge, donc si j'exécute le chiffre aléatoire rapidement et plusieurs fois, j'obtiens toujours le même chiffre.

                    Comment puis-je faire pour qu'il soit vraiment aléatoire à chaque exécution ?



                    Ce n'est pas aléatoire mais pseudo-aleatoire
                    Tu as surement du appeler la fonction srand() plusieurs fois
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Limiter la saisie à un nombre de caractères

                    × 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