ANSIのEscapeシーケンス画面制御コード
3079 ワード
普通の人が知らないもの:都市ハンターから
実質printf関数の拡張応用
文字の背景色を設定できます.フォント色m文字列
int ESC =27;
ptintf("%c[パラメータ],ESC);
実質printf関数の拡張応用
文字の背景色を設定できます.フォント色m文字列
int ESC =27;
ptintf("%c[パラメータ],ESC);
//cusor_ctrl.h
#ifndef __CUSOR_CTRL_H_
#define __CUSOR_CTRL_H_
#include
#include
#define COLOR_RED 31
#define COLOR_BLACK 30
#define COLOR_GREEN 32
#define COLOR_BLUE 34
#define COLOR_YELLOW 33
#define COLOR_WHITE 37
#define COLOR_CYAN 36
#define COLOR_MAGENTA 35
int ESC = 27;
//
void clear_screen(void);
//
void clear_to_end(void);
// (x,y)
void cusor_moveto(int x, int y);
//
void cusor_get_pos(void);
//
void cusor_set_pos(void);
// num
void cusor_up(int num);
// num
void cusor_down(int num);
// num
void cusor_lift(int num);
// num
void cusor_right(int num);
//
void set_fg_color(int color);
//
void set_bg_color(int color);
#endif //__CUSOR_CTRL_H_
int main()
{
int x=0;int y = 0;
int color=31;
clear_screen();
cusor_moveto(20,10);
while(1)
{
cusor_get_pos();
printf("(20,10)");
fflush(stdout);
sleep(1);
cusor_up(5);
sleep(1);
cusor_down(5);
sleep(1);
cusor_right(5);
sleep(1);
cusor_lift(5);
sleep(1);
cusor_moveto(50,10);
printf("(50,10)
");
sleep(1);
set_bg_color(COLOR_BLACK);
set_fg_color(COLOR_RED);
printf("
good morning
");
sleep(1);
set_bg_color(COLOR_YELLOW);
set_fg_color(COLOR_GREEN);
printf("gaorenwei
");
cusor_set_pos();
}
return 0;
}
void clear_screen(void)
{ printf("%c[2J",ESC);
fflush(stdout);
}
void clear_to_end(void)
{
printf("%c[K",ESC);
fflush(stdout);
}
void cusor_moveto(int x, int y)
{// ESC[y;xH
printf("%c[%d;%dH",ESC,y,x);
fflush(stdout);
}
void cusor_get_pos(void)
{// ESC[s printf("%c[s",ESC);
fflush(stdout);
}
//
void cusor_set_pos(void)
{// ESC[u
printf("%c[u",ESC);
fflush(stdout);
}
// num
void cusor_up(int num)
{
while(num--)
{ // up = ESC[A
printf("%c[A",ESC);
}
fflush(stdout);
}
// num
void cusor_down(int num)
{
while(num--)
{// down = ESC[B
printf("%c[B",ESC);
} fflush(stdout);}
// num
void cusor_lift(int num)
{
while(num--)
{// lift = ESC[D
printf("%c[D",ESC);
}
fflush(stdout);
}
// num
void cusor_right(int num)
{
while(num--)
{// right = ESC[C
printf("%c[C",ESC);
}
fflush(stdout);
}
//
void set_fg_color(int color)
{// ESC[#m
printf("%c[%dm",ESC,color);
fflush(stdout);
}
//
void set_bg_color(int color)
{// ESC[#m
printf("%c[%dm",ESC,(color+10));
fflush(stdout);
}