C语言炫酷输出

xiaoxiao2021-02-28  71

我吃得下一个超市,一群牲口,吃得下一群梦想和野心。         ————《饥饿是很好的锻炼》      在写完C语言程序进行展示的时候,往往用printf打印需要的内容,默认在Linux系统下紫色的背景,白色的字体显得单调乏味,一些简单的指令可以使打印的内容更加炫酷。      1、字体颜色效果;      格式:printf("\33[背景颜色;字颜色mhello world\33[0m");      字背景颜色范围:40----49      40:黑      41:深红      42:绿      43:黄色      44:蓝色      45:紫色      46:深绿      47:白色      字颜色:30-----------39      30:黑      31:红      32:绿      33:黄m      34:蓝色      35:紫色      36:深绿      37:白色        例如,你想打印一个背景为黄,字体颜色为红的字符串“hello world”,此时就可以写printf("\33[43;31mhello world\33[0m");,末尾为\33[0m属于ANSI控制码,下面会介绍,\33[0m的作用是关闭所有属性,如果没有,系统会将所有的printf输出的内容按之前设定的效果输出。 2、ANSI控制码    (使用方式与设置颜色相同)     ANSI控制码的说明     \33[0m 关闭所有属性     \33[1m 设置高亮度     \33[4m 下划线     \33[5m 闪烁     \33[7m 反显     \33[8m 消隐     \33[30m -- \33[37m 设置前景色     \33[40m -- \33[47m 设置背景色     \33[nA 光标上移n行     \33[nB 光标下移n行     \33[nC 光标右移n行     \33[nD 光标左移n行     \33[y;xH设置光标位置     \33[2J 清屏     \33[K 清除从光标到行尾的内容     \33[s 保存光标位置     \33[u 恢复光标位置     \33[?25l 隐藏光标     \33[?25h 显示光标     比如想打印一个红色字体加粗显示的字符串“hello world”,可以输入printf("\33[31m\33[1mhello world\33[0m"); 3、转义字符的使用     转义序列          名称                    描述     \a                    警告                    产生一则警告。     \b                    退格                    将光标回退一格。     \f                    换页                     将光标移到下一页的第一格。     \n                    换行                    将光标移到下一行的第一格。     \r                    回车                    将光标移到当前行的第一格。     \t                    水平制表              将光标移到下一个水平制表位置。     \v                   垂直制表将光标     移到下一个垂直制表位置。     \'                    单引号                  产生一个单引号。     \"                    双引号                 产生一个双引号。     \?                    问号                    产生一个问号。     \\                    反斜线                产生一条反斜线。     \0                    空                      产生一个空字符。     通过转义字符改变光标位置,及写入内容。 4、sleep 与 usleep的使用     我们执行程序的时候因为电脑的运行速度非常快,基本是在一瞬间完成输出,如果我们想看到动态效果,可以通过sleep和usleep完成。       下面介绍一个简单应用:          首先是主菜单的打印,同过\n、\t以及空格来改变输出的位置,然后通过字体颜色的设置改变输出效果;          第二步执行心形的程序,心型输出函数有设置动态效果,每打印一行就休眠一段时间,这里用到的是usleep函数,没有用sleep是因为它的原型为:usleep函数原型为:unsigned int sleep(unsigned int seconds);参数为秒,而int usleep(useconds usec);参数为微秒,即一百万分之一秒。(包含头文件include <unistd.h>);         第三步打印“请输入教师账号”和“请输入密码”这两句话,打印完会发现这句话在屏幕的最下端,可以使用ANSI控制码/33[nA,将它向上移动n行,再通过/33[nC向右移,将光标移动到“请输入教师账号”的后面,至于倒计时的完成是通过每次sleep一秒,打印这句话后,换行,然后再通过/33[1A将它上移一行,覆盖掉原来的内容,给人动态的感觉,这样就完成了图片中的样子。 (注意:如果大家要使用投影仪进行演示的话,最好了解投影仪的分辨率,不然显示的内容跟自己想要达到的效果会有很大差别,可能整个会乱掉。) QQ:1786610699      倔强的木木      2017年8月6日
转载请注明原文地址: https://www.6miu.com/read-47273.html

最新回复(0)