qfedu-c-level/lyric_analysis/srcs/console.c

57 lines
1.3 KiB
C
Raw Normal View History

#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); // 刷新输出缓冲区,立即输出
}
//保存光标位置
void cusor_get_pos(void)
2023-07-23 17:30:05 +08:00
{ // ESC[s
printf("\033[s"); // 保存光标位置
fflush(stdout);
}
//恢复光标位置
void cusor_set_pos(void)
2023-07-23 17:30:05 +08:00
{ // ESC[u
printf("\033[u"); // 恢复光标位置
fflush(stdout);
}
void cusor_hide(void)
{
2023-07-23 17:30:05 +08:00
printf("\033[?25l"); // 隐藏光标
}
//清屏
void clear_screen(void)
2023-07-23 17:30:05 +08:00
{ // ESC[2J
printf("\033[2J"); // 清屏
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);
}