Do czyszczenia jest clrscr(), tutaj mam fragmencik kodu z mojego daaaawno porzuconego projektu:
void textbackground( int color )
{
HANDLE wyjscie;
wyjscie = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( wyjscie, color );
}
void rysowanie( char znak, int p_x, int p_y )
{
gotoxy( p_x, p_y );
cout << znak;
}
void ramki()
{
char temp_ch = 0xCD;
rysowanie( 0xC9, 1, 1 );
rysowanie( 0xCD, 2, 1 );
for( int i = 0; i < 76; i++ )
cout << temp_ch;
rysowanie( 0xBB, 79, 1 );
for( int i = 2; i < 25; i++ )
rysowanie( 0xBA, 79, i );
rysowanie( 0xC8, 1, 25 );
temp_ch = 0xCD;
for( int i = 0; i < 77; i++ )
cout << temp_ch;
rysowanie( 0xBC, 79, 25 );
for( int i = 2; i < 25; i++ )
rysowanie( 0xBA, 1, i );
rysowanie( 0xCB, 60, 1 );
for( int i = 2; i < 25; i++ )
rysowanie( 0xBA, 60, i );
rysowanie( 0xCA, 60, 25 );
rysowanie( 0xCC, 60, 5 );
for( int i = 0; i < 18; i++ )
cout << temp_ch;
rysowanie( 0xCC, 60, 9 );
for( int i = 0; i < 18; i++ )
cout << temp_ch;
rysowanie( 0xCC, 60, 20 );
for( int i = 0; i < 18; i++ )
cout << temp_ch;
rysowanie( 0xCC, 60, 22 );
for( int i = 0; i < 18; i++ )
cout << temp_ch;
rysowanie( 0xB9, 79, 5 );
rysowanie( 0xB9, 79, 9 );
rysowanie( 0xB9, 79, 20 );
rysowanie( 0xB9, 79, 22 );
gotoxy( 61, 3 );
cout << "Program";
gotoxy( 62, 6 );
cout << "Cos ";
gotoxy( 62, 7 );
cout << "o ";
gotoxy( 62, 8 );
cout << "programie ";
gotoxy( 61, 10 );
cout << "Tutaj";
temp_ch = 0xcd;
rysowanie( 0xC9, 63, 12 );
for( int i = 0; i < 12; i++ )
cout << temp_ch;
rysowanie( 0xbb, 76, 12 );
temp_ch = 0xba;
gotoxy( 62, 13 );
cout << " " << temp_ch << "************" << temp_ch;
gotoxy( 62, 14 );
cout << " " << temp_ch << "************" << temp_ch;
gotoxy( 62, 15 );
cout << " " << temp_ch << "************" << temp_ch;
gotoxy( 62, 16 );
cout << " " << temp_ch << "************" << temp_ch;
gotoxy( 62, 17 );
cout << " " << temp_ch << "************" << temp_ch;
rysowanie( 0xC8, 63, 18 );
temp_ch = 0xcd;
for( int i = 0; i < 12; i++ )
cout << temp_ch;
rysowanie( 0xbc, 76, 18 );
gotoxy( 61, 21 );
cout << " CosFajnego ";
gotoxy( 61, 23 );
cout << "******Autor******";
gotoxy( 61, 24 );
cout << "C-Objective";
}
int menu()
{
gotoxy( 6, 3 );
cout << " SNAKE ";
gotoxy( 5, 5 );
cout << "...Opis Programu";
string menu_gl_op[ 4 ];
menu_gl_op[ 0 ] = " Opcja1 ";
menu_gl_op[ 1 ] = " Opcja2 ";
menu_gl_op[ 2 ] = " Opcja3 ";
menu_gl_op[ 3 ] = " Wyjscie ";
string clear = " ";
gotoxy( 6, 20 );
cout << " JakasNotka ";
gotoxy( 6, 22 );
cout << " CosFajnego ";
int podswietlona = 1;
int z1 = 0, z2 = 0, x = 22, y = 11;
do
{
for( int i = 0; i < 4; i++ )
{
if( podswietlona == i + 1 )
textbackground( 0x84 );
else
textbackground( 0x07 );
gotoxy( x, y );
cout << menu_gl_op[ i ] << endl;
y += 1;
}
y -= 4;
z1 = getch();
while( kbhit() )
{
z2 = getch();
}
fflush( stdin );
if( z1 == 224 && z2 == 72 && podswietlona != 1 )
podswietlona--;
else if( z1 == 224 && z2 == 80 && podswietlona != 4 )
podswietlona++;
} while( z1 != 13 );
z1 = 0, z2 = 0;
textbackground( 0x07 );
y = 2;
for( int i = 0; i < 23; i++ )
{
gotoxy( 5, y );
y += 1;
cout << clear << endl;
}
if( podswietlona == 1 )
return 1;
else if( podswietlona == 2 )
return 2;
else if( podswietlona == 3 )
return 0;
else
return - 1;
}
EDIT: Może to nie jest takie jak chciałeś, ale zdaje mi się że takie też jest dobre.