网易首页 > 网易号 > 正文 申请入驻

写一个会呼吸、有色彩的C程序

0
分享至

很久没有写C语言入门的文章了,今天来写一些有趣的程序吧。

刚学C语言时,是不是觉得程序的结果还没看清楚就一闪而过了?

又或者,满屏白底黑字看得有点乏味?

其实,C语言也可以很有趣。

今天我们就来学习如何让你的程序慢下来,让你的程序穿上彩衣。

一、绪言

要让你的C语言变得有趣,需要调用一些库函数,那么程序需要在开头引入头文件。

比如,引入头文件stdlib.h。

stdlib全称是standard library(标准库),它包含了许多预先写好的、实用的函数。

比如生成随机数的函数rand()和srand(),让程序暂停一下的函数sleep()等。

对了,以前介绍过的malloc函数也是在stdlib中定义的C语言入门:动态内存分配函数 malloc。

如果程序需要调用这些实用的函数,需要在程序的开头加上它:

#include

其他的头文件也一样,根据需要引入。

二、生成幸运数字

想让程序每次运行产生不同效果?随机数是关键。

生成随机数需要用到的函数是:rand()和srand()。

其实以前我也写过一篇如何生成随机数的文章C语言入门:写一个小游戏,利用随机数函数。

今天来写一个抽奖程序,随机出现的3个数字就是幸运数字。

程序1:幸运数字



运行结果:




再次运行得到的三个幸运数字,和之前的运行得出的三个数字是不一样的:



但是,如果在程序中去掉了srand(time(NULL));这一句,则每次运行的结果都一样的,你可以试一下。

也就是说,rand()生成的随机数是一个伪随机数,需要设置随机数的种子,否则每次运行结果都一样。

time是时间函数,这里用作随机数的种子,因为时间无时无刻都在变化,用它作种子,随机数才能不同。

三、让程序暂停一下

程序运行太快看不清?那么我们就让它在屏幕停留片刻,用暂停函数sleep()或usleep()。

sleep函数的参数为暂停的时间,单位为秒。

如暂停1秒,代码为:

sleep(1);

usleep函数用法和sleep类似,但它的参数单位为微秒。

要调用这两个函数,需要引入的头文件是。

程序2:简单倒计时



可以看到运行时的数字从5递减显示到1,每次出现一个数字时会停留1秒才开始出现下一个数字。

运行结果:



我们还可以利用这个函数模拟加载时的进度条。

程序3:加载进度



运行结果:



运行时每次出现一个小圆点会暂停0.3秒才出现下一个小圆点,类似进度条。

当我们想让连续出现的信息有一个延迟,都可以用到这两个暂停函数。

比如给孩子们编写一个会长大的毛毛虫,程序4:



运行结果:



四、编写一个彩色的程序

1、Linux/macOS终端的颜色器

在大多数Linux/macOS终端中,可以使用特殊转义序列:

\033[30m 黑色 \033[31m 红色 \033[32m 绿色

\033[33m 黄色 \033[34m 蓝色 \033[35m 紫色

\033[36m 青色 \033[37m 白色 \033[0m 重置颜色

程序5:



但是ANSI颜色代码在Dev C++(Windows)中无效,这是因为Windows控制台和Linux/macOS终端使用了不同的颜色系统。

\033[31m这种代码是Unix/Linux系统的颜色语言,而Windows控制台说另一种方言。

所以,在Windows系统中,颜色的设置同样简单有趣。

2、Window的颜色魔法

Windows系统用system("color")来设置颜色,需要引入头文件:windows.h和stdlib.h。

windows.h是调用Windows系统API的专用头文件,stdlib.h则定义了system函数。

(1)基础版:改变整个控制台的颜色

程序6:



运行结果:



按任意键后,恢复默认的黑底(0)灰字(7):



程序6要注意的地方:

(1)Sleep(1000); Sleep是Windows的等待函数,注意第一个字母S大写。

(2)system("color 4E"); 设置整个屏幕颜色,color后的第1个数字为背景色,第2个数字为文字颜色,如color 4E代表红底(4)黄字(E)。

(3)getchar(); 等待用户按任意键继续。

常用的颜色代码如下:



注意system("color")会改变整个控制台,如果只想让某些文字变色,则需要用到Windows API。

(2)进阶版:只改变文字颜色

Windows API的头文件是,设置文字颜色的函数是setColor(),恢复默认颜色的函数是resetColor()。

它们的使用如下:

void setColor(int color) { // 设置文字颜色的函数

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole, color);

void resetColor() { // 恢复默认颜色的函数

setColor(7); //灰色文字,黑色背景

程序7(改变文字的颜色):



运行结果:



(3) 更高级版:背景色+文字色组合

Windows颜色代码实际上是文字色 + 背景色×16的组合。

程序8:



运行结果:



给Dev C++用户的提醒:

(1)必须包含windows.h:这是Windows API的头文件。

(2)使用Sleep()而不是sleep():Windows的等待函数首字母大写。

(3)清屏用system("cls"):不是Linux的clear。

(4)编译时可能需要设置:Dev C++默认支持Windows API。

3、跨平台的颜色设置

如果你希望代码既能在Windows运行,又能在Linux/macOS运行,可以在main函数之前加上以下这几行代码:



记住:每个系统都有自己的特点,Windows的颜色系统虽然不同,但同样强大有趣。

现在你掌握了两种系统的颜色技巧,已经是真正的跨平台颜色魔法师了!

结语

这些看似简单的函数,正是构建复杂程序的基石。

好的代码不在于用了多少高级技巧,而在于用最合适的工具,清晰、高效地解决问题。

现在,打开你的编辑器,创建一个会呼吸、有色彩的程序吧!

若想要本文所有源程序代码的伙伴们,可私信或在评论区留言,注明“C程序”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
一天成交15万斤!杭州老板:一上午就卖空!今年粉菠萝火了

一天成交15万斤!杭州老板:一上午就卖空!今年粉菠萝火了

环球网资讯
2026-02-08 13:50:10
突发!苹果部分直营店全面停售 iPhone 17 系列

突发!苹果部分直营店全面停售 iPhone 17 系列

XCiOS俱乐部
2026-02-08 10:45:35
遭学生83页PDF举报,四川大学博导被爆更多黑料:多次公开鼓吹日本,骂学生精神病

遭学生83页PDF举报,四川大学博导被爆更多黑料:多次公开鼓吹日本,骂学生精神病

不掉线电波
2026-02-08 14:13:47
巴方3天击毙197暴徒!中国防空系统助其击落25架印军无人机,双线作战破局

巴方3天击毙197暴徒!中国防空系统助其击落25架印军无人机,双线作战破局

流年拾光
2026-02-06 16:42:21
王小东批易中天“把你们领导找来”,与政务窗口吃拿卡要1600万

王小东批易中天“把你们领导找来”,与政务窗口吃拿卡要1600万

书写者
2026-02-08 08:21:19
比芯片断供还难受,美日垄断全世界90%市场,我们连高仿都造不出

比芯片断供还难受,美日垄断全世界90%市场,我们连高仿都造不出

搜史君
2026-02-07 13:35:11
欧姆龙宣布涨价,涨幅最高50%!

欧姆龙宣布涨价,涨幅最高50%!

芯智讯
2026-02-07 18:32:40
王楚钦挺进亚洲杯决赛:比赛中遭闪光灯干扰无奈摇头,多次被打乱节奏;此前其罕见发火怒吼“闭嘴吧”,官方发文称已采取措施

王楚钦挺进亚洲杯决赛:比赛中遭闪光灯干扰无奈摇头,多次被打乱节奏;此前其罕见发火怒吼“闭嘴吧”,官方发文称已采取措施

极目新闻
2026-02-08 13:31:09
冬奥会争议一幕:日本裁判给日本选手高分 包揽金银牌 苏翊鸣吃亏

冬奥会争议一幕:日本裁判给日本选手高分 包揽金银牌 苏翊鸣吃亏

侃球熊弟
2026-02-08 04:06:52
看着就腿软!一女子徒手十几层高楼无防护擦玻璃,画面曝光

看着就腿软!一女子徒手十几层高楼无防护擦玻璃,画面曝光

都市快报橙柿互动
2026-02-07 09:33:40
重庆美女篮球手邓圣洁去世!年仅20岁185公分,长期喝酒一天两场

重庆美女篮球手邓圣洁去世!年仅20岁185公分,长期喝酒一天两场

裕丰娱间说
2026-02-07 12:09:45
李亚鹏直播透露董宇辉捐款金额:不是小钱,比200万高很多

李亚鹏直播透露董宇辉捐款金额:不是小钱,比200万高很多

第一财经资讯
2026-02-08 13:46:39
骑士险胜!米切尔35+4,哈登23+2+8,赛后哈登走过去,抱住威少

骑士险胜!米切尔35+4,哈登23+2+8,赛后哈登走过去,抱住威少

担酒
2026-02-08 13:30:19
哈登23+8末节爆发!阿伦被喂到撑12投29分,米切尔35分,威少尽力

哈登23+8末节爆发!阿伦被喂到撑12投29分,米切尔35分,威少尽力

你的篮球频道
2026-02-08 13:28:42
上海105岁老人凌晨流血昏迷,救护车出小区竟遭阻拦!家属:保安坚持“只进不出”,非要换门走;当班保安这样解释→

上海105岁老人凌晨流血昏迷,救护车出小区竟遭阻拦!家属:保安坚持“只进不出”,非要换门走;当班保安这样解释→

新民晚报
2026-02-08 09:17:38
“难怪大学生不爱回家了”,江苏母亲晒客厅,有钱也改变不了心累

“难怪大学生不爱回家了”,江苏母亲晒客厅,有钱也改变不了心累

叮当当科技
2026-02-08 04:31:30
天涯社区宣布重启:2026年6月1日恢复访问!1999元招募创世成员

天涯社区宣布重启:2026年6月1日恢复访问!1999元招募创世成员

快科技
2026-02-07 09:54:13
华为二公主这气场,生生把旁边两个女星衬成了部门销售小妹

华为二公主这气场,生生把旁边两个女星衬成了部门销售小妹

娱乐故事
2026-02-07 14:36:19
天助阿森纳,1-1爆大冷门,英超第3遭英超第12逼平,落后榜首9分

天助阿森纳,1-1爆大冷门,英超第3遭英超第12逼平,落后榜首9分

侧身凌空斩
2026-02-08 01:28:25
农发行一副行长被查!在该行工作20余年,上个月曾出席活动

农发行一副行长被查!在该行工作20余年,上个月曾出席活动

南方都市报
2026-02-07 22:54:33
2026-02-08 15:40:49
呼呼历史论
呼呼历史论
分享有趣的历史
351文章数 16226关注度
往期回顾 全部

科技要闻

欧盟认定存在"上瘾"设计 TikTok:结论错误

头条要闻

湖北省委原书记蒋超良再被点名:为官莫喝“迷魂汤”

头条要闻

湖北省委原书记蒋超良再被点名:为官莫喝“迷魂汤”

体育要闻

铜牌与苏翊鸣的这四年,他说:我对得起自己

娱乐要闻

曝带女星回老家小区,罗云熙紧急回应

财经要闻

金银震荡144小时 大爷大妈排队「抄底」

汽车要闻

VLA司机大模型优化 理想汽车OTA8.3版本更新

态度原创

游戏
家居
时尚
本地
亲子

2月13日XGP玩家享福了!爽玩高能人生2、天国拯救

家居要闻

现代轻奢 温馨治愈系

40+女性冬季这样穿:“长外套+裙子”,保暖与洋气双向在线

本地新闻

围观了北京第一届黑色羽绒服大赛,我笑疯了

亲子要闻

8岁男童视力下降,眼睛受伤!寒假期间,家长需做好以下三件事!

无障碍浏览 进入关怀版