Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec fgets

Sujet résolu
    23 décembre 2006 à 19:44:14

    Bonjour :)

    J'essai d'utiliser fgets pour mes saisies mais le programme ne le reconnait pas, il marque directement "Appuyer sur une touche pour continuer" sans le prendre en compte :(

    fgets(contenu, sizeof contenu, stdin);


    Merci d'avance ;)
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2006 à 19:47:05

      Ne connaissant pas ton code, le buffer était peut être déja rempli ?

      Essaie avec fflush(stdin); juste avant...
      • Partager sur Facebook
      • Partager sur Twitter
        23 décembre 2006 à 19:49:52

        Citation : PianoPâriss

        Ne connaissant pas ton code, le buffer était peut être déja rempli ?

        Essaie avec fflush(stdin); juste avant...



        Non, le char n'est pas rempli, mais sa sert à quoi fflush(stdin) ?

        Merci :)
        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2006 à 19:52:37

          Citation : ! M@X !

          Citation : PianoPâriss

          Ne connaissant pas ton code, le buffer était peut être déja rempli ?

          Essaie avec fflush(stdin); juste avant...



          Non, le char n'est pas rempli, mais sa sert à quoi fflush(stdin) ?

          Merci :)




          Ca vide le buffer d'entrée (comme fflush(stdout); mais pour le buffer stdin (= STanDard INput))
          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2006 à 19:55:40

            Citation : ! M@X !

            ok sa marche merci beaucoup :)



            Juste une remarque, ne l'utilise pas tout le temps, normalement je n'ai jamais du faire ça, donc à n'utiliser que quand ça marche pas ^^
            • Partager sur Facebook
            • Partager sur Twitter
              23 décembre 2006 à 23:45:59

              Citation : PianoPâriss

              Ne connaissant pas ton code, le buffer était peut être déja rempli ?

              Essaie avec fflush(stdin); juste avant...


              Non. Comportement indéfini. fflush() n'est défini que pour les flux sortants.

              http://docs.mandragor.org/files/Programming_languages/C/fclc_faq_fr/fclc0014.html#q_4

              La gestions des entrées doit être faite correctement, c'est à dire :

              1 - utilisation
              2 - nettoyage

              et ceci pour toutes les saisies. C'est simple à mettre en oeuvre avec fgets(),

              http://www.siteduzero.com/tuto-3-11181-1-c-realiser-des-saisies-securisees-grace-a-fgets.html

              c'est beaucoup plus difficile avec scanf().

              http://xrenault.developpez.com/tutoriels/c/scanf/
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                24 décembre 2006 à 19:55:04

                Citation : -ed-

                Citation : PianoPâriss

                Ne connaissant pas ton code, le buffer était peut être déja rempli ?

                Essaie avec fflush(stdin); juste avant...


                Non. Comportement indéfini. fflush() n'est défini que pour les flux sortants.

                http://docs.mandragor.org/files/Programming_languages/C/fclc_faq_fr/fclc0014.html#q_4

                La gestions des entrées doit être faite correctement, c'est à dire :

                1 - utilisation
                2 - nettoyage

                et ceci pour toutes les saisies. C'est simple à mettre en oeuvre avec fgets(),

                http://www.siteduzero.com/tuto-3-11181-1-c-realiser-des-saisies-securisees-grace-a-fgets.html

                c'est beaucoup plus difficile avec scanf().

                http://xrenault.developpez.com/tutoriels/c/scanf/



                Je ne savais pas que le comportement n'était défini que pour les flux sortants ;)
                • Partager sur Facebook
                • Partager sur Twitter

                problème avec fgets

                × 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