jueves, 14 de febrero de 2008

¿Cómo implementar la función gotoxy en C++ para la consola de Linux?

Una manera de implementar la función goto(x,y) en C++ que permite escribir texto en una posición determinada en la consola de Linux.
/** \file   GotoXY.C
*  \brief  Definición de las funciones necesarias para implementar gotoxy.
*  \author Airam Rodríguez Rivero
*  \date   14-02-08
*/
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
using namespace std;

/**
 * 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() {
  system("clear"); // Importante para no sobreescribir la pantalla.
  // Emular goto(x, y);
  cout << gotoxy(2,4) << "Hola" << endl;
} 

No hay comentarios:

Publicar un comentario

Escriba su comentario (no necesita registrarse).