elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con programa de threads y visualización en pantalla.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa de threads y visualización en pantalla.  (Leído 1,866 veces)
malospelosmalon

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Ayuda con programa de threads y visualización en pantalla.
« en: 15 Julio 2011, 14:24 pm »

Buenos días compañeros.

Para estudiar un poco sobre hilos y procesos en C++ he hecho una pequeña aplicación que a la vez que muestra la fecha y hora del sistema en la pantalla te va pidiendo 2 numero y te muestra el resultado de la suma.

El problema es que a traves de un codigo que he encontrado en internet intento emular el gotoxy de c, pero como podreis ver el cursor esta todo el rato parpadeando ya que cada vez que se ejecuta el hilo mueve el cursor a la posició original.

Sabeis si hay alguna forma de suavizar o anular este efecto?.

Gracias.

Código:
#include <iostream>
#include <string>
#include <sstream>
#include <stdlib.h>

using namespace std;

void Calculadora(void);
void *Reloj(void *);

/* Función para convertir cualquier tipo
de datos a string.
*/
template <class T>
inline string ToString(const T& t) {
stringstream ss;
ss << t;
return ss.str();
}

/* Función para emular al gotoxy en la consola de
Linux.
*/
inline string gotoxy(const int& x,const int& y) {
return "\33[" + ToString(x) + ";" + ToString(y) + "H";
}

int main()
{
   pthread_t *mihilo=new pthread_t;
   
   
   if(pthread_create(mihilo,NULL,Reloj,NULL))
   {
        cout<<"Error";
   }
   
   Calculadora(); 
   
}

void Calculadora(void)
{
  int n1,n2;
  n1=0;
while(n1!=-1)
{
  system("clear");
  cout<<gotoxy(8,4)<<"Introduce el primer numero: ";
  cin>>n1;
 
  cout<<gotoxy(8,4)<<"Introduce el segundo numero: ";
  cin>>n2;
 
  cout<< gotoxy(8,4)<<"El resultado de la operacion es:"<< n1+n2<<"\n";
  cin>>n1;
 
 }


}

void *Reloj(void *arg)
{

time_t rawtime;
bool a;

a=false;


    while(a==false)
      {
         time( &rawtime );
         //system("clear"); // Importante para no sobreescribir la pantalla.
// Emular goto(x, y);
         cout << gotoxy(2,4) << ctime(&rawtime )<< "\n";

      }
}


En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Ayuda con programa de threads y visualización en pantalla.
« Respuesta #1 en: 15 Julio 2011, 16:28 pm »

En Windows existe una API similar a gotoxy, se llama SetConsoleCursorPosition.

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda problema con la visualizacion del foro
Sugerencias y dudas sobre el Foro
maxmag 3 2,916 Último mensaje 24 Abril 2008, 02:55 am
por jpmo4
Les dejo una ayuda para hacer Threads, asi lo aprendi a usar yo xD.
.NET (C#, VB.NET, ASP)
Braayhaan 4 5,420 Último mensaje 29 Agosto 2009, 23:36 pm
por Braayhaan
AYUDA CON LA VISUALIZACION DE ICONOS AL INSTALAR ROCKETDOC
Software
jordansud 0 1,065 Último mensaje 22 Agosto 2012, 08:42 am
por jordansud
Ingreso, almacenamiento y visualización de datos por pantalla « 1 2 »
Java
BackToTheFuture 11 5,081 Último mensaje 19 Abril 2015, 16:01 pm
por Usuario Invitado
Ayuda en threads
Programación C/C++
codX 2 1,978 Último mensaje 8 Noviembre 2019, 21:03 pm
por codX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines