problema funcion kbhit();
hola, tengo el problema ke ,hasta ke no toco una tecla todo bien, pero cuando pulso una tecla el programa se vuelve loco y no para de ejecutarse, he leido algo de ke se keda la ultima tecla en el buffer y supongo ke habra ke vaciarlo, pero nose como, lo suyo seria ke se kedara como al principio para ke me devuelva un 0.
bueno gracias por adelantado y salu2!!!! |
Si no nos das mas datos, no sabremos porque te pasa, ¿puedes pegar el código?.
Por curiosidad he hecho una pequeña prueba y no me da ningún problema, si pulso una tecla devuelve 1 y si la suelto devuelve 0. Coke. |
#include <conio.h>
#include <stdio.h> #include <dos.h> #include <iostream.h> #include "libreria\senal.h" char opc; float sen1=90,sen2=90,sen3=90,sen4=90,sen5=90; int main() { int fin=0; do{ char opc; cout<<"*-------------------------------------------*"<<endl; cout<<"| BRAZO MECANICO por CHRISTIAN ALABART |"<<endl<<'|'<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<" "<<'|'<<endl; cout<<"| Escoge una opcion: |"<<endl<<'|'<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<" "<<'|'<<endl; cout<<"| 1- Movimiento libre con teclado |"<<endl; cout<<"| 2- Programar movimientos |"<<endl; cout<<"| 3- Ver programacion |"<<endl; cout<<"| 4- Ver estado de los servos |"<<endl; cout<<"| 5- Borrar programacion |"<<endl; cout<<"| 6- Ver paso a paso |"<<endl; cout<<"| 7- Salir |"<<endl; cout<<"*-------------------------------------------*"<<endl<<endl; senal(sen1,sen2,sen3,sen4,sen5); //funcion donde se manda señal al puerto //paralelo y no sale de ay hasta presionar //tecla if (!kbhit()) { opc=getch(); switch (opc) { case '1': { //movimiento(); break; } case '2': { //programar(); break; } case '3': { //ver_prog(); break; } case '4': { //servos(); break; } case '5': { //borrar_prog(); break; } case '6': { //paso(); break; } case '7': { fin = 1; break; } } } clrscr(); }while (fin==0); } no se si estare utilizando mal esta funcion o ke pero no me va muy bien, seguramente es una tonteria o no, pero gracias por la ayuda |
a mi no me da problemas, de todas formas haz una prueba con este....
[PHP] #include <conio.h> #include <stdio.h> #include <dos.h> #include <iostream.h> //#include "libreria\senal.h" char opc; float sen1=90,sen2=90,sen3=90,sen4=90,sen5=90; int main() { bool fin=false; cout<<"*-------------------------------------------*"<<endl; cout<<"| BRAZO MECANICO por CHRISTIAN ALABART |"<<endl<<'|'<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<" "<<'|'<<endl; cout<<"| Escoge una opcion: |"<<endl<<'|'<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<" "<<'|'<<endl; cout<<"| 1- Movimiento libre con teclado |"<<endl; cout<<"| 2- Programar movimientos |"<<endl; cout<<"| 3- Ver programacion |"<<endl; cout<<"| 4- Ver estado de los servos |"<<endl; cout<<"| 5- Borrar programacion |"<<endl; cout<<"| 6- Ver paso a paso |"<<endl; cout<<"| 7- Salir |"<<endl; cout<<"*-------------------------------------------*"<<endl<<endl; while(!fin){ //senal(sen1,sen2,sen3,sen4,sen5); //funcion donde se manda señal al puerto //paralelo y no sale de ay hasta presionar //tecla if (kbhit()) { opc=getch(); switch (opc) { case '1': { //movimiento(); cout <<"has pulsado el 1"<<endl; break; } case '2': { //programar(); cout <<"has pulsado el 2"<<endl; break; } case '3': { //ver_prog(); cout <<"has pulsado el 3"<<endl; break; } case '4': { //servos(); cout <<"has pulsado el 4"<<endl; break; } case '5': { //borrar_prog(); cout <<"has pulsado el 5"<<endl; break; } case '6': { //paso(); cout <<"has pulsado el 6"<<endl; break; } case '7': { fin = true; cout <<"has pulsado el 7"<<endl; break; } } } //clrscr(); } return 0; } [/PHP] |
muchas gracias coke, parece ke si funciona bien y es justo lo ke yo keria, de verdad gracias
Salu2!!! |
La franja horaria es GMT +2. Ahora son las 19:36. |
Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate