Vale, lo que vamos a aprender nuevo es como hacer un marco y aprender a escribir dentro de el sin tener que borrar la pantalla y ademas, agregandole un color individual a cada letra.
Empecemos con el codigo:
Vale. Necesitaremos lo siguiente
Librerias:
Por que estas librerias?
El iostream es muy simple, es solo para usar el cout y el cin
El windows.h nos permitira usar el comando para delay o retraso que es Sleep y los comandos para poder usar las coordenadas y el color.
El stdio.h junto con el windows.h nos permitira hacer el marco.
Ahora definimos colores para no tener que aprendernos los numeros de los colores a memoria:
Sin olvidar nuestro querido:
Ahora declaramos la funcion t (que es textcolor) con un parametro entero.
Textcolor de linea con el windows.h que permitira escribir el color en una sola linea
Nos quedaria asi:
Ahora declaramos la funcion g (que es gotoxy parecido al borland) con dos parametros entero.
Gotoxy emulado con el windows.h que permitira escribir en la linea que desees sin hacer un Clear Screen.
Nos quedaria asi:
Vale, ahora que tenemos las funciones principales. Declararemos las funciones que utilizaremos para reducir la escritura de algo a una cosa mas pequeña sin tener que declarar funcion por funcion:
Ahora nos toca declarar el cuadro, vale. Esto es muy sencillo, ya que esta facilmente hecho para que solo tengan que copiar y pegar. los limites siempre seran X de 1 al 77 y Y de 1 al 21
Entonces:
No olvidar colocar un nombre o algo en la seccion //TU NOMBRE//
Vale. Ahora nos toca lo mas dificil de comprender, que es la funcion main principal o en este caso aprender a hacer cout y cin por coordenadas sin tener que usar un clear screen. Podremos imprimir lo que deseemos con solo especificar la coordenada. Los limites de coordenadas para que no se les salgan del cuadro siempre seran:
x de 3 hasta 75
y de 3 hasta 20
Tendremos que aplicar siempre si queremos usar el cuadro las coordenadas de gotoxy y no usar ni endl ni n para bajar linea. Simplemente para continuar en otra linea subes el valor de la coordenada Y un numero o los que desees.
Vale, ya terminamos el codigo explicado paso a paso. Tendriamos que tener algo como esto:
Ahora vayan practicando por ustedes mismos y lograran grandes cosas.

Empecemos con el codigo:
Vale. Necesitaremos lo siguiente
Librerias:
#include <iostream>
#include <windows.h>
#include <stdio.h>
Por que estas librerias?
El iostream es muy simple, es solo para usar el cout y el cin
El windows.h nos permitira usar el comando para delay o retraso que es Sleep y los comandos para poder usar las coordenadas y el color.
El stdio.h junto con el windows.h nos permitira hacer el marco.
Ahora definimos colores para no tener que aprendernos los numeros de los colores a memoria:
#define negro 0
#define azul 1
#define verde 2
#define cyan 3
#define rojo 4
#define magenta 5
#define marron 6
#define grisclaro 7
#define grisoscuro 8
#define azulclaro 9
#define verdeclaro 10
#define cyanclaro 11
#define rojoclaro 12
#define magentaclaro 13
#define amarillo 14
#define blanco 15
Sin olvidar nuestro querido:
using namespace std;
Ahora declaramos la funcion t (que es textcolor) con un parametro entero.
Textcolor de linea con el windows.h que permitira escribir el color en una sola linea
Nos quedaria asi:
void t(int n){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);
}
Ahora declaramos la funcion g (que es gotoxy parecido al borland) con dos parametros entero.
Gotoxy emulado con el windows.h que permitira escribir en la linea que desees sin hacer un Clear Screen.
Nos quedaria asi:
void g(int x, int y){
//X=COLUMNAS
//Y=FILAS
HANDLE coss = GetStdHandle(STD_OUTPUT_HANDLE);
COORD Pcoss;
Pcoss.X = x;
Pcoss.Y = y;
SetConsoleCursorPosition(coss, Pcoss);
}
Vale, ahora que tenemos las funciones principales. Declararemos las funciones que utilizaremos para reducir la escritura de algo a una cosa mas pequeña sin tener que declarar funcion por funcion:
/*Escribir solo en color blanco con coordenadas
Ejemplo:
coutg(3,4,"Patata");
donde el 3 es el espaciado " "
donde el 4 es la linea
donde "Patata" es imprimir
*/
void coutg(int x, int y, char* output){
g(x,y); t(blanco); cout<<output;
}
/*Escribir en cualquier color con coordenadas
Ejemplo:
coutg(3,4,rojo,"Perrito");
donde el 3 es el espaciado " "
donde el 4 es la linea
donde rojo es el color
donde "Perrito" es imprimir
*/
void coutc(int x, int y, int n, char* output){
g(x,y); t(n); cout<<output;
}
/*Coordenadas en color para casos especiales
Ejemplo
gt(3,4,blanco);
donde el 3 es el espaciado " "
donde el 4 es la linea
donde blanco es el color
*/
void gt(int x, int y, int n){
g(x,y); t(n);
}
/*Cout simple con coordenadas*/
void couts(int x, int y, char* output){
g(x,y); cout<<output;
}
/*Printf simple con coordenadas*/
void print(int x, int y, char* output, int w){
g(x,y); printf(output,w);
}
/*Printf con textcolor y coordenadas*/
void printc(int x, int y, int n, char* output, int w){
g(x,y); t(n); printf(output,w);
}
/*Printf blanco*/
void printg(int x, int y, char* output, int w){
g(x,y); t(blanco); printf(output,w);
}
Ahora nos toca declarar el cuadro, vale. Esto es muy sencillo, ya que esta facilmente hecho para que solo tengan que copiar y pegar. los limites siempre seran X de 1 al 77 y Y de 1 al 21
Entonces:
void Limite(){
int i,j=1,w;
gt(28,23,blanco); printf("Cargando, Espere por favor.");
//textocolor
t(verde);
for (i= 1; i<78 ; i++){
Sleep(5);
g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(i,1); printf("%c",205);
g(i,22); printf("%c",205);
if(i%2==0){
if(j<22){
j++;
g(1,j); printf("%c",186);
g(78,j); printf("%c",186);
}
}
g(78,22); printf("%c",188);
g(1,22); printf("%c",200);
}
g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(78,22); printf("%c",188);
g(1,22); printf("%c",200);
gt(28,23,blanco); printf(" ");
//Nombre o algo
g(28,23); printf("//TU NOMBRE//");
}
No olvidar colocar un nombre o algo en la seccion //TU NOMBRE//
Vale. Ahora nos toca lo mas dificil de comprender, que es la funcion main principal o en este caso aprender a hacer cout y cin por coordenadas sin tener que usar un clear screen. Podremos imprimir lo que deseemos con solo especificar la coordenada. Los limites de coordenadas para que no se les salgan del cuadro siempre seran:
x de 3 hasta 75
y de 3 hasta 20
Tendremos que aplicar siempre si queremos usar el cuadro las coordenadas de gotoxy y no usar ni endl ni n para bajar linea. Simplemente para continuar en otra linea subes el valor de la coordenada Y un numero o los que desees.
int main(void){
Limite();
//limite para escribir en x de 3 hasta 75
//limite para escribir en y de 3 hasta 20
coutc(3,3,rojo,"Hola amigos, como estan?");
coutc(3,4,marron,"Yo estoy muy bien, y ustedes?");
coutc(3,5,azul,"Estamos genial");
//en este caso para escribir solamente en blanco
coutg(3,9,"Este escrito con coutg aparecera siempre en blanco");
//coordenadas con printf
print(3,11,"%c",205);
printc(3,12,rojo,"%c",205);
//en este caso printf escribe solamente en blanco
printg(3,13,"%c",205);
//Tambien es posible hacerlo del modo clasico
g(3,16); t(amarillo); cout<<"Prueba de modo clasico";
//Para escribir y leer
coutc(3,19,rojo,"Ingrese un numero");
int a;
g(3,20);cin>>a;
Sleep(5000);
}
Vale, ya terminamos el codigo explicado paso a paso. Tendriamos que tener algo como esto:
#include <iostream>
#include <windows.h>
#include <stdio.h>
#define negro 0
#define azul 1
#define verde 2
#define cyan 3
#define rojo 4
#define magenta 5
#define marron 6
#define grisclaro 7
#define grisoscuro 8
#define azulclaro 9
#define verdeclaro 10
#define cyanclaro 11
#define rojoclaro 12
#define magentaclaro 13
#define amarillo 14
#define blanco 15
using namespace std;
//Textcolor de linea con el windows.h que permitira escribir el color en una sola linea
void t(int n){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);
}
//Gotoxy emulado con el windows.h que permitira escribir en la linea que desees sin hacer un Clear Screen.
void g(int x, int y){
//X=COLUMNAS
//Y=FILAS
HANDLE coss = GetStdHandle(STD_OUTPUT_HANDLE);
COORD Pcoss;
Pcoss.X = x;
Pcoss.Y = y;
SetConsoleCursorPosition(coss, Pcoss);
}
/*Escribir siempre en color blanco con coordenadas
Ejemplo:
coutg(3,4,"Patata";)
donde el 3 es el espaciado " "
donde el 4 es la linea
donde "Patata" es imprimir
*/
void coutg(int x, int y, char* output){
g(x,y); t(blanco); cout<<output;
}
/*Escribir en cualquier color con coordenadas
Ejemplo:
coutc(3,4,rojo,"Perrito";)
donde el 3 es el espaciado " "
donde el 4 es la linea
donde rojo es el color
donde "Perrito" es imprimir
*/
void coutc(int x, int y, int n, char* output){
g(x,y); t(n); cout<<output;
}
/*Coordenadas en color para casos especiales
Ejemplo
gt(3,4,blanco);
donde el 3 es el espaciado " "
donde el 4 es la linea
*/
void gt(int x, int y, int n){
g(x,y); t(n);
}
/*Cout simple con coordenadas*/
void couts(int x, int y, char* output){
g(x,y); cout<<output;
}
/*Printf simple con coordenadas*/
void print(int x, int y, char* output, int w){
g(x,y); printf(output,w);
}
/*Printf con textcolor y coordenadas*/
void printc(int x, int y, int n, char* output, int w){
g(x,y); t(n); printf(output,w);
}
/*Printf blanco*/
void printg(int x, int y, char* output, int w){
g(x,y); t(blanco); printf(output,w);
}
//El cuadro
void Limite(){
int i,j=1,w;
gt(28,23,blanco); printf("Cargando, Espere por favor.");
//textocolor
t(verde);
for (i= 1; i<78 ; i++){
Sleep(5);
g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(i,1); printf("%c",205);
g(i,22); printf("%c",205);
if(i%2==0){
if(j<22){
j++;
g(1,j); printf("%c",186);
g(78,j); printf("%c",186);
}
}
g(78,22); printf("%c",188);
g(1,22); printf("%c",200);
}
g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(78,22); printf("%c",188);
g(1,22); printf("%c",200);
gt(28,23,blanco); printf(" ");
//Nombre o algo
g(28,23); printf("//TU NOMBRE//");
}
int main(void){
Limite();
//limite para escribir en x de 3 hasta 75
//limite para escribir en y de 3 hasta 20
coutc(3,3,rojo,"Hola amigos, como estan?");
coutc(3,4,marron,"Yo estoy muy bien, y ustedes?");
coutc(3,5,azul,"Estamos genial");
//en este caso para escribir solamente en blanco
coutg(3,9,"Este escrito con coutg aparecera siempre en blanco");
//coordenadas con printf
print(3,11,"%c",205);
printc(3,12,rojo,"%c",205);
//en este caso printf escribe solamente en blanco
printg(3,13,"%c",205);
//Tambien es posible hacerlo del modo clasico
g(3,16); t(amarillo); cout<<"Prueba de modo clasico";
//Para escribir y leer
coutc(3,19,rojo,"Ingrese un numero");
int a;
g(3,20);cin>>a;
Sleep(5000);
}
Ahora vayan practicando por ustedes mismos y lograran grandes cosas.