Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MiguelSanchez1703 en 19 Marzo 2017, 20:25 pm



Título: Problema con reloj
Publicado por: MiguelSanchez1703 en 19 Marzo 2017, 20:25 pm
Código
  1. #include <iostream>
  2. #include <thread>
  3. #include <chrono>
  4.  
  5. #ifdef _WIN32
  6. #define CLEAR "cls"
  7. #else
  8. #define CLEAR "clear"
  9. #endif
  10.  
  11. using namespace std;
  12. using namespace this_thread;
  13. using namespace chrono;
  14.  
  15. void verTiempoActual ();
  16.  
  17. int main () {
  18.        verTiempoActual();
  19.  
  20.        return 0;
  21. }
  22.  
  23. void verTiempoActual () {
  24. char Decision;
  25. system (CLEAR);
  26. cout << "VER EL TIEMPO Y LA FECHA ACTUALES" << endl;
  27. cout << "--- -- ------ - -- ----- --------" << endl;
  28. system_clock::time_point Actual = system_clock::now();
  29. time_t mostrarTiempo;
  30. mostrarTiempo = system_clock::to_time_t (Actual);
  31. cout << "Ahora estamos en: " << ctime(&mostrarTiempo) << endl;
  32. cout << "\nPonga 'B' para ir al menu o 'E' para salir: ";
  33. sleep_for (seconds(1));
  34. verTiempoActual();
  35. cin >> Decision;
  36. if (Decision == 'B' or Decision == 'b') {
  37. main();
  38. }else if (Decision == 'E' or Decision == 'e') {
  39. Salir();
  40. }else{
  41. cout << "Ponga una opcion valida" << endl;
  42. }
  43. }

Hola, en esta parte del codigo, no se como hacer para poder introducir una b o una e mientras el codigo sigue su curso, es decir, mientras el codigo va añadiendo un segundo a la hora, poder introducirle una orden, Gracias


Título: Re: Problema con reloj
Publicado por: ivancea96 en 19 Marzo 2017, 21:07 pm
Cuando tratas de leer entrada por la consola, el código se detiene a esperarla.

Tendrías que utilizar threads. Pero no te recomiendo ponerte con eso ahí (no vale la pena ese trabajo por el reloj). Yo de ti, trataba de evadir ese problema como puedas y proseguir.

La respuesta corta: no es algo "trivial".

Y como detalle, eso de llamar al main desde una función (o desde el propio main, vaya), deberías evitarlo. Puedes hacerlo, pero no es lo ideal.


Título: Re: Problema con reloj
Publicado por: MAFUS en 19 Marzo 2017, 22:46 pm
Bajo Linux utiliza el termios. Pones en terminal en modo no canónigo y sin esperas. Entonces un getchar no bloquea el terminal, no sé si funciona para cin.
Si usas windows ni idea.