C游戏:printf打印更改颜色和背景(Ubuntu版)

阅读: 评论:0

C游戏:printf打印更改颜色和背景(Ubuntu版)

C游戏:printf打印更改颜色和背景(Ubuntu版)

        在Ubuntu或其他Linux发行版中,控制台的颜色设置方式与Windows有所不同。我们可以使用ANSI转义序列来设置终端显示的字体颜色和背景颜色。

        printf 函数修改颜色具体的应用格式为:

printf("33[31m  文本  n");  // 33[31m表示设置前景色为红色


        ' 33[31m ' 是一种ANSI转义序列,用于在终端中设置文本的颜色。

        ' 33 ': 这是转义字符,用于表示一个转义序列的开始。在C语言中,它通常表示为 ' e ' 或 ' x1B '。
        ' [31m ': 这是ANSI转义序列中的颜色控制代码。[31m表示设置前景色为红色。
        ANSI转义序列以转义字符开头(' 33' 或 ' e ' 或 ' x1B ' ),后跟一个左方括号[,然后是具体的控制代码,最后以字母m结尾。

        为什么以字母m结尾?

        ANSI转义序列以字母m结尾是因为‘m’是ANSI转义序列中的终止字符。该字符告诉终端应用程序该序列的控制代码已结束。

        文字总是枯燥乏味的,接下来直接展示完整代码!!!

        传统版:

#include <stdio.h>int main(void)
{printf("33[31m你好n");return 0;
}

        

         效果一般般,是不是很无聊,我也觉得,那么我们玩个好玩的:写一首歌!

#include <stdio.h>
//安河桥int main(void)
{printf("e[45m  一首宋冬野的安河桥送给大家n");printf("e[33m让我再看你一遍n从南到北n像是被五环路蒙住的双眼n请你再讲一遍n关于那天n抱着盒子的姑娘n和擦汗的男人n我知道n那些夏天n就像青春一样回不来n代替梦想的n也只能是勉为其难n我知道n吹过的牛逼n也会随青春一笑了之n让我困在城市里n纪念你n");return 0;
}

        PuTTY版

 这样看起来高级多了!

        顺便了解一下printf缓冲区:

        printf函数在输出文本时使用了缓冲区(buffer),这是为了提高输出效率。当我们调用printf函数时,它并不会立即将文本输出到终端或文件,而是先将文本存储在缓冲区中,然后在适当的时机进行输出。

        下面是关于printf缓冲区的总结:

  1. 行缓冲(Line buffering):当输出的文本包含换行符('n')时,缓冲区会被刷新,将其内容输出到目标设备。这意味着当遇到换行符时,printf会立即将文本输出到终端或文件。

  2. 全缓冲(Fully buffering):当输出的文本没有包含换行符时,缓冲区不会立即刷新,而是等待缓冲区被填满或程序结束时才进行输出。

  3. 强制刷新缓冲区:我们可以使用fflush函数来强制刷新缓冲区,无论缓冲区是否已满。例如,fflush(stdout)将刷新标准输出缓冲区。

  4. 自动刷新:有些情况下,缓冲区会自动刷新。例如,当程序正常结束时,所有的缓冲区都会被刷新。另外,标准错误流stderr通常是不经过缓冲的,所以错误信息会立即输出到终端。

  5. 标准I/O函数:printf函数是标准I/O库中的一个函数,它提供了格式化输出功能。标准I/O库还包括其他函数如scanf、fopen、fclose等。这些函数会使用相同的缓冲区。

        了解printf缓冲区的工作原理对于理解输出的延迟和控制输出的时机很有帮助。如果需要立即将文本输出到终端或文件,可以使用fflush函数来刷新缓冲区。

        今天就分享到这里了哦~

本文发布于:2024-02-02 10:53:28,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170684240943320.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:颜色   背景   游戏   Ubuntu   printf
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23