Autor Tema: limpiar solo parte de pantalla en c++ system(cls) borra toda pantalla cplusplus  (Leído 30321 veces)

pasisica

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
hola, utilizo el compilador dev c++ y tengo una duda respecto a limpiar solo una parte de la pantalla.
Creé este programa que es como un juego que muestra numeros de 1 a 3 y se repite 3 veces si los numeros se repiten 3 veces, se gana el juego si se repite 2 veces se empata el juego y si los tres numeros son diferentes, se pierde el juego.
ahora yo quiero mostrar los numeros que se van generando en pantalla pero sin llenar la pantalla, he utilizado system(cls); pero me borra toda la pantalla y yo quiero que solo borre los numeros que va generando el bucle y no el texto que esta antes.

aqui dejo mi codigo para que me comprendan mejor.

Código: [Seleccionar]
#include <stdio.h>
#include<conio.h>
#include<iostream.h>
int main()
{
int a=0,b=0,c=0;
char letra='a';
int salir=1,cont1,cont2,cont3;

do
{
if(salir=1)
{
cout<<"La tombola esta dando vueltas oprime cualquier tecla para pararlo"<<endl;
while(!kbhit())
{
if(a==4)
{
a=1;
}
a+=1;
cout<<a;
//aqui no colocque system("cls"); por eso llena la pantalla
}
cont1=a;
cout<<"el numero de la bola es "<<a;
cout<<"\nve por el segundo intento"<<endl<<endl;
getch();
getch();
}

if(salir=2)
{
cout<<"La tombola esta dando vueltas oprime cualquier tecla para pararlo"<<endl;
while(!kbhit())
{
if(b==4)
{
b=1;
}
b+=1;
cout<<a;
system("cls");//esta funcion me borró todo y quieso que solo borre los numeros y no las letras que estan antes de los numeros.
}
cont2=b;
cout<<"el numero de la bola es "<<b;
cout<<"\nve por el tercer intento"<<endl<<endl;
getch();
getch();
}

if(salir=3)
{
cout<<"La tombola esta dando vueltas oprime cualquier tecla para pararlo"<<endl;
while(!kbhit())
{
if(c==4)
{
c=1;
}
c+=1;
cout<<a;
system("cls");
}
cont3=c;
cout<<"el numero de la bola es "<<c<<endl;
getch();
}
salir+=1;
}while(salir<4);
if(cont1!=cont2&&cont1!=cont3&&cont2!=cont3)
{
cout<<endl<<"Has perdido el juego, lo siento tio/a "<<endl;
}
if(cont1==cont2&&cont2!=cont3)
{
cout<<endl<<"Has empatado el juego"<<endl;
}
if(cont1!=cont2&&cont2==cont3)
{
cout<<endl<<"Has empatado el juego"<<endl;
}
if(cont1!=cont2&&cont1==cont3)
{
cout<<endl<<"Has empatado el juego"<<endl;
}
if(cont1==cont2&&cont2==cont3)
{
cout<<endl<<"Has ganado el juego, felicidades, los $1000 son tuyos "<<endl;
}
getch();
}
« Última modificación: 11 de Mayo 2015, 18:55 por Alex Rodríguez »

Mayen Olivares

  • Sin experiencia
  • *
  • Mensajes: 48
    • Ver Perfil
Re:limpiar solo una parte de la pantalla en c++
« Respuesta #1 en: 09 de Noviembre 2013, 00:13 »
Prueba a imprimir escribiendo cout<<a<<"\b"; de este modo después de imprimir un número se mueve una posición atrás y en vez de llenar la pantalla se vuelve a escribir en la misma posición en la que estaba  ;)


pasisica

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Re:limpiar solo una parte de la pantalla en c++
« Respuesta #2 en: 09 de Noviembre 2013, 15:01 »
gracias amigo, ha funcionado. Problema resuelto.

VITANARE

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:limpiar solo una parte de la pantalla en c++
« Respuesta #3 en: 30 de Noviembre 2013, 19:21 »
tambien con gotoxy(columna,fila)para limpiar apartir y/o desde una posicion

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".