SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: wilbur-naike en Viernes 16 de Marzo de 2007, 06:14

Título: Metodos Para Limpiar Pantalla
Publicado por: wilbur-naike en Viernes 16 de Marzo de 2007, 06:14
Hola a todos.

Bueno estoy observando los metodos para limpiar la pantalla y de seguro tambien conocen.

Veamos:
Código: Text
  1. system("cls"); //For DOS
  2.  
Código: Text
  1. system("clear"); //For Linux
  2.  

y por ultimo:
Código: Text
  1. char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
  2. printf("%s",a);
  3.  

La duda es en este ultimo. Como cargar el ansi.sys?
Ah y que siginifica esos caracteres como j,%s en fin no entiendo ese codigo.

S4lud0s.
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: JuanK en Viernes 16 de Marzo de 2007, 14:27
Aca esta:
http://support.microsoft.com/kb/99261 (http://support.microsoft.com/kb/99261)

Este es uno mas pequeño que servira para la mayoria de casos

Código: Text
  1.       int hWrittenChars = 0;
  2.       CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();      
  3.       COORD Home;  
  4.  
  5.       Home.x = Home.y = 0;
  6.       GetConsoleScreenBufferInfo(STD_OUTPUT_HANDLE , &strConsoleInfo);
  7.       FillConsoleOutputCharacter(STD_OUTPUT_HANDLE , EMPTY, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, &hWrittenChars);
  8.       SetConsoleCursorPosition(STD_OUTPUT_HANDLE , Home);
  9.  
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: L1zb3th en Viernes 16 de Marzo de 2007, 17:02
xDDDDDDDDD
si haces un programa en consola tambien podes usar conio 2, que ademas de esto trae muchas cosas como colores para la letra y demas....
Au Revoir !
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: JuanK en Viernes 16 de Marzo de 2007, 17:08
ahh lo olvidaba, para linux puedes usar ncurses para controlar la salida por consola.
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: Eternal Idol en Viernes 16 de Marzo de 2007, 17:13
Cita de: "L1zb3th"
si haces un programa en consola tambien podes usar conio 2, que ademas de esto trae muchas cosas como colores para la letra y demas....
No exactamente, la podes usar si haces un programa con un compilador que la soporte, en Windows tambien hay programas para consola y supongo que te referiras a MS-DOS.
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: L1zb3th en Viernes 16 de Marzo de 2007, 17:28
sip eternal :P
y si, yo uso el Dev-c++ con mingw
lo soporta claro, teniendo este caso por ejemplo ..
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: su - en Viernes 16 de Marzo de 2007, 20:45
Cita de: "JuanK"
ahh lo olvidaba, para linux puedes usar ncurses para controlar la salida por consola.
No y si al mismo tiempo, ncurses es para hacer dialogs en la terminal y no para controlarla en si.

Citar
Ah y que siginifica esos caracteres como j,%s en fin no entiendo ese codigo.

Es un escape de ANSI.

Mira esto, te sera de mucha ayuda:

http://en.wikipedia.org/wiki/ANSI_escape_code (http://en.wikipedia.org/wiki/ANSI_escape_code)
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: JuanK en Viernes 16 de Marzo de 2007, 20:51
mmm si entiendo, pero de paso aprende algo un poco mas util :P
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: wilbur-naike en Viernes 16 de Marzo de 2007, 21:59
Agradesco cada ayuda que me dieron.

Y ese enlace trata de una funcion para usar el limpiado de pantalla. Muy bueno  :smartass:

Pero las verdad me gustaria aprender a entender este codigo:
Citar
char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
printf("%s",a);

y sobre el conio2 lo conozco.

S4lud0s
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: JuanK en Viernes 16 de Marzo de 2007, 22:11
Código: Text
  1. char a[5]={27,'[','j',0} /* Para ambos (en DOS cargando antes ansi.sys) */
  2. printf("%s",a);
  3.  


char a[5]={27,'[','j',0}

define un array de caracteres de 5 posiciones, si se considera a como un apuntador a una cadena entonces la cadena es : "←[j"

el primer caracter ( el # 27) corresponde al CARACTER SCAPE y el ultimo ( el 0) es un null.

esa secuencia de caracteres forma un caracter de escape que lo que hace es borrar toda la pantalla o sea un cls.

printf("%s",a);

ahi se imprime el caracter de escape , o sea ahi es donde se borra la pantalla.

Si miras el link que te envio su- veraz como esa secuencia de caracteres, en efecto borar la pantalla de acuerdo a la descripción indicada.
Título: Re: Metodos Para Limpiar Pantalla
Publicado por: AnioN en Viernes 16 de Marzo de 2007, 23:30
a mi me parece que usar la funcion systemes demasiado para una funcion tan simple como limpiar la pantalla. Es mejor utulizar alguna funcion especial para este fin de esta manera ahorras recursos y la performance no baja.