2023-07-22 10:34:16 +08:00
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include "./includes/console.h"
|
|
|
|
|
|
2023-07-23 17:30:05 +08:00
|
|
|
|
void cusor_moveto(int x, int y) //将光标移动到指定位置
|
|
|
|
|
{ // ESC[y;xH
|
|
|
|
|
printf("\033[%d;%dH", y, x); // 将光标移动到指定位置,x 为横坐标,y 为纵坐标,\033 为 ESC
|
|
|
|
|
fflush(stdout); // 刷新输出缓冲区,立即输出
|
2023-07-22 10:34:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存光标位置
|
|
|
|
|
void cusor_get_pos(void)
|
2023-07-23 17:30:05 +08:00
|
|
|
|
{ // ESC[s
|
|
|
|
|
printf("\033[s"); // 保存光标位置
|
2023-07-22 10:34:16 +08:00
|
|
|
|
fflush(stdout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//恢复光标位置
|
|
|
|
|
void cusor_set_pos(void)
|
2023-07-23 17:30:05 +08:00
|
|
|
|
{ // ESC[u
|
|
|
|
|
printf("\033[u"); // 恢复光标位置
|
2023-07-22 10:34:16 +08:00
|
|
|
|
fflush(stdout);
|
|
|
|
|
}
|
|
|
|
|
void cusor_hide(void)
|
|
|
|
|
{
|
2023-07-23 17:30:05 +08:00
|
|
|
|
printf("\033[?25l"); // 隐藏光标
|
2023-07-22 10:34:16 +08:00
|
|
|
|
}
|
|
|
|
|
//清屏
|
|
|
|
|
void clear_screen(void)
|
2023-07-23 17:30:05 +08:00
|
|
|
|
{ // ESC[2J
|
|
|
|
|
printf("\033[2J"); // 清屏
|
2023-07-22 10:34:16 +08:00
|
|
|
|
fflush(stdout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
COLOR_RED 红
|
|
|
|
|
COLOR_BLACK 黑
|
|
|
|
|
COLOR_GREEN 绿
|
|
|
|
|
COLOR_BLUE 蓝
|
|
|
|
|
COLOR_YELLOW 黄
|
|
|
|
|
COLOR_WHITE 白
|
|
|
|
|
COLOR_CYAN 青
|
|
|
|
|
COLOR_MAGENTA 洋红
|
|
|
|
|
*/
|
|
|
|
|
//设置前景颜色
|
|
|
|
|
void set_fg_color(int color)
|
|
|
|
|
{ // ESC[#m
|
|
|
|
|
printf("\033[%dm", color);
|
|
|
|
|
fflush(stdout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设置背景颜色
|
|
|
|
|
void set_bg_color(int color)
|
|
|
|
|
{ // ESC[#m
|
|
|
|
|
printf("\033[%dm", (color + 10));
|
|
|
|
|
fflush(stdout);
|
|
|
|
|
}
|