• Martes 19 de Marzo de 2024, 10:20

Autor Tema:  Limpiar Pantalla En C++  (Leído 257244 veces)

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Limpiar Pantalla En C++
« en: Domingo 8 de Junio de 2008, 00:37 »
0
bueno, esa es mi duda... cómo puedo limpiar la pantalla de forma estándar en C++??? algo similar a lo que hace el clrscr() de conio.h.... GRACIAS AMIGOS!
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Iganguli

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: mx
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #1 en: Domingo 8 de Junio de 2008, 02:07 »
0
puedes usar
Citar
system("cls");
que esta en la  stdlib.h

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #2 en: Domingo 8 de Junio de 2008, 02:30 »
0
ok, voy a probar... gracias xD
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #3 en: Viernes 13 de Junio de 2008, 01:25 »
0
pues intente con el system("cls"), y nada... no me funciona... yo lo estoy haciendo desde el ide de borland (ese de azul) pero usando solo LO STANDAR... aun asi... no encuentro como limpiar pantalla... porque ya aprendi a odiar la conio.h, sobre todo gotoxy y clrscr...
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Riskz

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #4 en: Viernes 13 de Junio de 2008, 03:37 »
0
Pues me parece raro que no te ande. Incluiste la libreria stdlib?:
Código: Text
  1.  
  2. #include <stdlib.h>
  3.  
  4.  

Es que cabe aclarar que estandar no quiere decir que lo puedes hacer sin incluir nada, es decir, aunque la libreria sea estandar tienes que incluirla igual.

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #5 en: Viernes 13 de Junio de 2008, 04:25 »
0
Obvio, ya tengo tiempo averiguando sobre C++ estándar... inclui esa libreria y tambien stdio.h, mmm y la iostream.h
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Iganguli

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: mx
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #6 en: Viernes 13 de Junio de 2008, 05:48 »
0
si estas usando c++ entonces la libreria es la  

Código: Text
  1. #include <cstdlib>
  2.  

y si usas c entonces es la

Código: Text
  1. #include <stdlib.h>
  2.  

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #7 en: Sábado 14 de Junio de 2008, 09:37 »
0
estoy programando en C++ pero usando el IDE de borland... ese azul en formato MSDOS... pero esa libreria que dices (cstdlib) no existe... bueno, no me la reconoce  :scream:  en verdad no tengo idea de como lograr eso de borrar la pantalla...
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

franz.

  • Miembro activo
  • **
  • Mensajes: 55
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Re: Limpiar Pantalla En C++
« Respuesta #8 en: Sábado 14 de Junio de 2008, 19:58 »
0
bajo que sistema operativo estas trabajando?
si es bajo unix pues solo con un system("clear");
si usas DOS:
system("cls");
saludos
Citar
[th3r0rn@Linux ~]$ uname -a
Linux Linux 2.6.25-ARCH #1 SMP PREEMPT Sat Jun 14 18:07:19 CEST 2008 i686 Intel(R) Celeron(R) M CPU 420 @ 1.60GHz GenuineIntel GNU/Linux

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #9 en: Sábado 14 de Junio de 2008, 20:16 »
0
bueno, yo tengo instalado windows xp sp3... pero estoy trabajando con el IDE de BORLAND, bajo MSDOS... (bueno, el CMD)... y bueno... necesito borrar la pantalla para q no se vea un enredo de datos en la pantalla... sera posible que no exista una forma estándar?
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Iganguli

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: mx
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #10 en: Sábado 14 de Junio de 2008, 23:33 »
0
bueno una forma estandar creo que no existe (creo ;) ) y tomalo como un consejo no uses el borlnad ya que es un compilador de 16 bits aparte de viejisimo no esta actualizado al c++ puedes probar con otros compiladores como el vc++ en su version express si no quieres pagar licencia :D  o usar los de gnu como el minigw o el codeblocks o es el dev cpp y dejar atras el borland

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Limpiar Pantalla En C++
« Respuesta #11 en: Domingo 15 de Junio de 2008, 19:39 »
0
Cita de: "[x3mjr"
,Junio 14, 2008 01:37 am]estoy programando en C++ pero usando el IDE de borland... ese azul en formato MSDOS... pero esa libreria que dices (cstdlib) no existe... bueno, no me la reconoce  :scream:  en verdad no tengo idea de como lograr eso de borrar la pantalla...
Ese compilador es viejo, no incluye la función que estás intentando utilizar. Lo que si veo, ya que usas ese compilador, pues utiliza las funciones que tienes a tu disposición de la biblioteca conio, o cámbiate a algo más reciente, las versiones Express .NET de los compiladores de Microsoft son gratuitas :).

Una alternativa para que luego compiles tu código en otras plataformas podría ser algo como esto:
Código: Text
  1.  
  2. #ifdef BORLAND_DOS
  3.   #define limpia_pantalla clrscr();
  4.  
  5. #ifdef WINDOWS
  6.     #define limpia_pantalla system( "cls" );
  7.  
  8. #ifdef LINUX
  9.   #define limpia_pantalla system( "clear" );
  10.  
  11.  
Así, en cada lugar donde desees limpiar la pantalla llamas a la función limpia_pantalla, la cual se define de acuerdo al sistema que estés utilizando, a lo que esto te ayuda es a que no se necesite editar el código para compilar en otra plataforma, recuerda enlazar con la biblioteca adecuada ;).
Nota: ese código es incorrecto, faltan las sentencias #endif para cerrar los #ifdef y quizá podría hacerse de otra forma, pero la idea se entiende :P.
La imaginación es el límite.
Hardware & Software | Mexchip

Forly

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #12 en: Domingo 22 de Junio de 2008, 00:01 »
0
Hola:
Espero que no sea demasiado tarde.

Te cuento que no existe una forma estandar de borrar la pantalla en C ni en C++.

Como te han contestado ya otros foreros, la funcion system() de la libreria stdlib.h, si es estandar, y utiliza el comando del sistema operativo para borrar la pantalla. Es no es nada portable, ya que cada sistema operativo tiene su forma particular d limpiar la pantalla.

Por otro lado, te cuento que el IDE Turbo C de Borland, no es nada estandar, y ademas solo se puede utlizar bajo sistema operativo DOS o en maquinas virtuales que lo emulen.

Como bien sabras, el DOS esta diseñado, para una plataforma Intel I8086, por lo que lo hace menos portable aun.

Sin saber por que tienes que trabajar en este entorno obsoleto, te envio una solucion que encontre para este entorno tan exclusivo y alejado de los estandares:

Espero que te sirva.

//////////////////////////////////////////////////////////////////////////
// NOMBRE: clrscr()
// AUTOR : Forly.
// CREADA  : 21/06/2008
//
// ACCION: Borra la pantalla en modo texto. Es una funcion alternativa a
//         la funcion "clrscr()" de la libreria "conio.h" de Borland.
//
//         Utiliza codigo ensamblador de la familia de procesadores
//         I8086, por lo que se transforma en una funcion NO PORTABLE.
//
//         Funciona bien en entornos DOS y en maquinas virtuales DOS
//         que se ejecutan bajo las arquitecturas I8086.
//
// PARAMETROS: Ninguno.
// RETORNOS    : Ninguno.
//-----------------------------------------------------------------------
#include <stdio.h>
#include <iostream.h>

void clrscr(void)
{
      asm   {
               push ax
               mov ah,0fh
               int 10h
               mov ah,00h
               int 10h
               pop ax
            }
}

//------------------------------------------------------------------------
// PORCION DE  main() PARA PROBAR EN TURBO C++ V.3.0 DE BORLAND.
//------------------------------------------------------------------------
int main()
{
    cout << "Esto lo escribo para que veas algo en pantalla" << endl;
    cout << "(presiona una tecla para continuar...)" << endl;
    getchar(); // Hago una pausa.

    clrscr(); // Limpia la pantalla con la funcion desarrollada.

    cout << "Si ves solo esto es que la funcion trabaja bien." << endl;
    cout << "(presiona otra tecla para terminar...)" << endl;
    getchar();
    clrscr();
    return 0;
}

////////////////////////// FIN DE ARCHIVO //////////////////////////////////

Saludos

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Limpiar Pantalla En C++
« Respuesta #13 en: Domingo 22 de Junio de 2008, 01:30 »
0
Gracias! lástima que igual no sea estándar... pero ya decia yo que con las interrupciones se podia hacer algo... jeje... bueno, ya empecé con DEV-C++, y algo de ALLEGRO... Gracias, voy a probar y te aviso... :)  B)
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #14 en: Domingo 22 de Junio de 2008, 02:26 »
0
Para UNIX lo estandar seria usar ANSI escapes (en Windows tambien se puede, usando ANSI.SYS... yo miraria Windows.h) :
Código: Text
  1. printf( &#34;&#092;e[2J&#34; );
  2.  
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Forly

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Limpiar Pantalla En C++
« Respuesta #15 en: Domingo 22 de Junio de 2008, 03:30 »
0
Nuevamente en tema:

Si recien comienzas con Dev C++, te recomiendo que cambies por Code::Blocks, ya que Dev C++ es un proyecto discontinuado, mientras que el Code:: Blocks, se parece bastante, es un proyecto joven, que utiliza el mismo compilador, es multi plataforma y tiene futuro.

En cuanto a comenzar con Allegro, nuevamente me permito sugerirte que lo cambies por las librerias SDL.

Son solo consejos.

Suerte