Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - jmhr98

#1
¿Alguien sabe alguna forma de hacerlo? He usado un condicional if en el ciclo for. De la forma: if(cin.get()=='d') Return 0; pero el bucle se queda esperando a que yo pulse alguna otra tecla. Es decir, lo que quiero es que el bucle se vaya ejecutando y cuando yo pulse la d, se termine el programa. No que se quede esperando a que yo pulse la d u otra para funcionar y volver al mismo punto de pedirme otra vez que introduzca otra tecla. Gracias
#2
#include "iostream"
#include "conio.h"
#include "time.h"
using namespace std;
int main(){
   srand(time(NULL));
int Y,num=10;
      int n[11]={0,1,2,3,4,5,6,7,8,9,10};
      Y=rand()%num;
   for (int i=0; i<10;i++){
         if (i==Y){
            int a=n;
      cout <<"\033[1;35m\033[1m" << a << "\033[1;35m\033[0m"<<endl;   
      }
         else{   cout << n<<endl;   
      
      sleep(1);
      
      if (cin.get()=='d'){
         
         return 0;
      }
      
   }
   }
return 0;   
}   

Se queda pillada la cuenta atrás en el 0. Mientras que en otro que hice, no. ¿Por qué?
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
int main(){
   srand(time(NULL));
   int Y;
   cout << "Hola, bienvenid@ al programa de ordenamiento e iniciador de cuenta atrás de los números que introduzca."<<endl;
   cout<< "\n Para detener la futura cuenta atrás, pulsar la tecla 'd' "<< endl;
   int n, i, aux,j;
   int arr[100];
   cout<< "\nIngrese la cantidad de números para la cuenta atrás." << endl;
   cin>> n;
   Y=rand()%n;
   for (i=0; i<n;i++){
      
      cout << "Número " << i+1 << " para la cuenta atrás :";
      cin>>arr;   
   }
   
   for (i=0;i<n;i++){
      
      for (j=i+1;j<n;j++){
         
      if (arr<arr[j]){   
   
         aux=arr;
         arr=arr[j];
         arr[j]=aux;      
         }
      }
if (i==Y){
   int a;
a=arr;
   cout <<"\nLos números en cuenta atrás son :" << "\033[1;34m \033[1m" << a;
cout <<"\033[0m \033[0m\n";
}
else{   cout << "\nLos números en cuenta atrás son :" << arr<< endl;   
   sleep(3);
   
   if (cin.get()=='d'){
      cout << "\nCuenta atrás detenida";
      
      return 0;
   }
   }
   }   
return 0;   
}


Por qué en este no?

Gracias
#3
Estoy usando la función cin.get() de la forma cin.get()!= 'carácter' pero cuando intento hacerlo con cadena de carácteres, no me funciona. ¿Como se puede hacer?
#4
Programación C/C++ / Función kbhit() y getch()
13 Agosto 2018, 16:12 PM
Hola buenas. Resulta que he empezado hace unos días el lenguaje C++. El problema es que estoy intentando hacer un bucle tipo cuenta atrás pero que al pulsar una determinada tecla, éste se pare. Leyendo por internet he visto que una solución es usar el kbhit() de la librería conio.h, pero no sé su sintaxis para una determinada tecla. Y para qué sirve el getch(), ¿Está relacionado?