Problema con c++

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Riff Raff
    Egelito muy adictivo
    • 01-08-2006
    • 1571

    #1

    Problema con c++

    Un problema boludísimo...

    Necesito que al apretar cualquier tecla, una variable se ponga en 1, y cuando la vuelva a apretar, se ponga en 0, pero sin frenarme en todo el programa.

    Es para un semáforo con encendido / "apagado" para la escuela. Cuando está en "apagado" parpadean las luces amarillas juaju.

    Algo así: el semáforo anda funcionando perfecto, pero cuando apreto una tecla, que parpadeen las luces amarillas. Cuando la vuelvo a apretar que vuelva a la normalidad.

    Yo estaba pensando en un while con un kbhit, pero cuando quiero que vuelva al estado normal, no encuentro forma de que el kbhit vuelva a cero y como que la tecla está por siempre apretada.

    Estoy usando turbo c++ y soy re newbie .

    gracias
    Brought to you by the letter R-r-r-r
  • Grün
    Patrulla AntiSnobsensual
    • 16-05-2007
    • 2508

    #2
    dejá turbo c++ y te puedo ayudar
    es lo menos standard e ISO que existe.....

    ¿el programa te pide quie presiones?
    podrias hacerlo si usas algo de event-driven programming tanquilamente...
    me parece que con SDL en un par de lineas (10, 12) lo haces.

    Sino no sé...no oy muy habitué a las librerias io que tenga borldan (de hecho las odio>)

    Un saludete.

    Comentario

    • Riff Raff
      Egelito muy adictivo
      • 01-08-2006
      • 1571

      #3
      En la escuela usamos turbo c++. Si lo programo y compilo con otro compilador, después va a ser un dolor de cabeza, además voy a tener que controlar el puerto paralelo y ni idea como se hace de otra manera.

      El programa no pide nada. Mientras funciona, toco una tecla y para, y después sigue, pero se me complica pq turbo c++ es una mierda aparentemente juaj.
      Brought to you by the letter R-r-r-r

      Comentario

      • Ðimitri.
        fukin dim
        • 19-11-2003
        • 8210

        #4
        soy frodo

        aua todos putean con turbo c++
        yo lo uso para la facultad.
        mucha ayuda no te puedo dar, no se me ocurre nada
        fsdf recien empez =/
        Editado por última vez por Ðimitri.; 15-10-2007, 03:52 AM.
        Nací un buen día, mi madre no era virgen. No vino el Rey, tampoco me importó.


        Jotase: Me siento solo =(.
        Reidiojed: No me importan tus PUCHEROS!

        Comentario

        • Piluex
          Away
          • 10-10-2004
          • 3038

          #5
          Usá kbhit de conio.h y una vez q sabés q se tocó una tecla, getch =)


          Vamos che, no era tan difícil... F1.

          RTFM

          Comentario

          • Riff Raff
            Egelito muy adictivo
            • 01-08-2006
            • 1571

            #6
            Originalmente publicado por Piluex
            Usá kbhit de conio.h y una vez q sabés q se tocó una tecla, getch =)


            Vamos che, no era tan difícil... F1.

            RTFM
            Ya hice eso, pero cuando quiero apretar para volver al estado anterior, kbhit sigue estando en un valor diferente de 0 y no se como resetearlo. Se entiende?

            El programa corre, apreto una tecla, khhit cambia a un valor diferente de 0, el programa sigue, apreto una tecla y kbhit sigue estando en un valor que no es 0.

            No se como hacer para "resetear" kbhit.
            Brought to you by the letter R-r-r-r

            Comentario

            • Piluex
              Away
              • 10-10-2004
              • 3038

              #7
              no tengo tubro c++ pero en mi mente es tan simple como

              while(kbhit())
              {
              x=getch();
              }

              y eso no es un loop infinito.

              Comentario

              • Riff Raff
                Egelito muy adictivo
                • 01-08-2006
                • 1571

                #8
                Pero yo no quiero que se quede preguntando, yo quiero que el programa siga funcionando hasta que quiera pararlo, eso lo hice con un

                while (kbhit())
                {
                }

                pero después para que siga andando, si hago lo mismo, u otra cosa relacionada con kbhit, no funciona.
                Brought to you by the letter R-r-r-r

                Comentario

                • judío ginger daywalker petiso
                  Pelotudo
                  • 14-03-2005
                  • 16758

                  #9
                  tenes que sacarla del buffer, con getch, como bien te dijeron antes...

                  pasa que vos pensas que sabes, y respondes en lugar de testear el codigo antes...

                  goes like this, fella: vos tipeas, y eso entra a un buffer.
                  kbhit te dice "no 0" si hay algo en el buffer
                  getch se fija si hay algo en el buffer. si esta vacio, se clava hasta que haya algo. cuando hay algo, lo saca, y te lo asigna a la variable.

                  kbhit NO SACA DEL BUFFER.
                  entonces, getch despues de kbhit != 0 NO SE QUEDA ESPERANDO.
                  y si apretaste solo una tecla, kbhit ahora va a devolverte 0 denuevo.

                  capice?

                  K
                  Editado por última vez por judío ginger daywalker petiso; 15-10-2007, 02:27 PM.

                  Comentario

                  • Riff Raff
                    Egelito muy adictivo
                    • 01-08-2006
                    • 1571

                    #10


                    No pienso que sé, ayer estuve bastante tiempo probando y no lo pude hacer funcionar con kbhit. Lo del getch no lo sabía, yo lo usaba solamente parar parar el programa y esperar una respuesta, como en pause del DOS.

                    Ahora pruebo los programas, gracias.
                    Brought to you by the letter R-r-r-r

                    Comentario

                    • Grün
                      Patrulla AntiSnobsensual
                      • 16-05-2007
                      • 2508

                      #11
                      debes estar haciendo algo mal...

                      comentario al margen: la conio es de las mas PEOR bibliotecas que hay...usen algo mas copado (al margen de que te pidan que aprendas a escribir en binario haciendo calculos mentales con un promedio de 30 letras por minuto o no...) como SDL =D

                      Comentario

                      • Piluex
                        Away
                        • 10-10-2004
                        • 3038

                        #12
                        Che pero todo el mundo sabe eso señorito. Igual la conio en SU momento estaba genial.

                        Comentario

                        • Hyoga
                          juanito
                          • 28-11-2003
                          • 8089

                          #13
                          quiero aprender programacion

                          Comentario

                          • Piluex
                            Away
                            • 10-10-2004
                            • 3038

                            #14
                            En vacaciones de verano voy a dar clases particulares.

                            Comentario

                            • MoaLaiSkirulais
                              ^^(V)^^
                              • 08-07-2003
                              • 23268

                              #15
                              telefe mar de ajo y clases de C

                              duhalde.....

                              Comentario

                              Trabajando...