#include

#include


#define WELCOME() printf("\033[8;15H\033[36;40m欢迎使用***系统\033[0m\n")


int main(void)

{

    char core[50]={0};

    char password[36] = {0};

    printf("\33[2J\033[3;10H\033[;32m 工号:"); //\33[2J "清屏" //\033[3;10H "设置'工号'位置" //\033[;32m "设置'工号'字体绿色,无背景色"(此后程序所有字样都是绿色)

    printf("\033[4;10H 密码:"); //\033[4;10H "设置'工号'位置" 

    printf("\033[3;16H");//\033[3;16H "设置'core'输入位置" 

    scanf("%s", core);

    printf("\033[4;16H\33[8m"); //\033[4;16H "设置'password'输入位置" //\33[8m "消影:此后隐藏scanf输入的字符" 

    scanf("%s", password);

    getchar();

    printf("\033[41;32m Text this position stat\n");  //\033[;32m "设置'工号'背景色为红色,字体绿色,"(\33[8m影响了字体显示,只显示背景色)

    printf("-----------------------------------------------\n");  //\33[8m影响了字体显示,只显示背景色

    printf("\033[0m");  //\033[0m "清除以上所有设置,恢复正常"

    printf("Restored normal\n");

    

    WELCOME(); //宏函数

    printf("\n");

    printf("\n");

    printf("\n");

    int i=0;

    for(i=1000; i>0; i--)

    {

        /* 功能:实现数字在同一行显示 */

        /* 以下%d不加'\n', 缓存区数据无法读,数字会有卡顿现象  */

        printf("\033[1A%d\033[K\n", i);  //\033[1A "设置:光标上移1行" //\033[K "设置:清除从光标到行尾的内容"(如果数字从大->小显示,需要此功能) 

        

        //printf("\033[10;15H%d\033[K\n", i);/* 方式二: //\033[10;15H "指定i的显示位置" //\033[K "设置:清除从光标到行尾的内容" */

        

        /* //方式三: 此方式最后会清除数字

        printf("\033[s");  //\033[s "设置:保存光标位置" 

        printf("%d\033[K\n", i); 

        printf("\033[u"); //\033[u "设置:恢复光标位置" 

         */

        usleep(10000);

    }

    printf("\033[0m"); //\033[0m "设置:清除所有设置"

    

    return 0;

}

'\033'格式:指定输出格式_第1张图片