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ú

Mensajes - jmhr98

#1
Sí, MAFUS, es cierto todo. Pero es que ando sin guía y es un amigo el que me hace esta especie de retos. Así voy aprendiendo mientras buscó (como he aprendido el tema de poner colores a los caracteres y demás). Pero si no paso "esta pantalla", no puedo seguir sus peticiones. No sé, leí la página pero no entendí nada. Es por ello que quizás era lo que buscaba, pero por falta de conocimiento no me dí cuenta. ¿Sabes de alguna guía? ¿Y como de usaría lo de la web que me recomendaste? Estoy pensando que antes del for almacenar en el buffer un carácter y así no se defendía el bucle? Es eso lo que quieres decir?
#2
Getch es para detectar si se ha pulsado una tecla o no. No entiendo la función que tendría en el hecho de detener el programa. ThunderCls, he usado tu código y no funciona.
Para que entendáis mi problema, éste es el código:



Código (cpp) [Seleccionar]


#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){
     cout <<"\033[1;35m\033[1m" << n[i] << "\033[1;35m\033[0m"<<endl;  
     }
        else{   cout << n[i]<<endl;  
     
     sleep(1);
   
  if {(cin.get()=='d')
      return 0;}
 
  }
  }
return 0;  

}

[/quote]


Para que entiendan como es el funcionamiento normal que quiero para el programa (cuenta atrás y un número aleatorio se torna de un determinado color), quiten la parte del condicional if que lleva el cin.get.

Gracias por sus mensajes y ayuda. Es que me estoy desanimando de seguir aprendiendo porque no entiendo nada.
#3
Entré en el mundo de la programación y el C++ hace unos días. No sé a qué se refiere. Pero si consiguiese eso, ¿Podría poner ese condicional y no pararse hasta que introduzca un carácter?
Sí me pudiese ser más concreto y ayudarme, se lo agradecería mucho.
#4
¿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
#5
#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
#6
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?
#7
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?