我用C语言实现的文字跑马灯,简直是程序员的表白神器!

图片

系列文章

Python百宝箱

C语言百宝箱

目录

系列文章

写在前面

C语言简介

EasyX简介

EasyX下载安装

文字跑马灯

写在后面


写在前面

教你用C语言实现文字跑马灯效果,简直是C语言表白神器!

环境:C语言/C++

软件:Visual Studio 2022

C语言简介

C语言是一种通用的高级编程语言,由丹尼斯·里奇在20世纪70年代初开发。C语言的设计目的是为了提供一种简洁、高效、可移植的编程语言,适用于不同平台和操作系统。

C语言之所以成为一种重要的编程语言,是因为它具有以下几个优点:

  1. 简洁高效:C语言的语法简洁,代码执行效率高。同时,C语言可以直接访问计算机硬件,使得程序员可以更加精细地控制程序的运行。

  2. 可移植性强:C语言的语法和标准库是跨平台的,可以在不同操作系统和计算机上编写和运行程序。这种跨平台特性使得C语言成为了许多操作系统和软件的主要开发语言。

  3.  丰富的库函数:C标准库提供了丰富的函数,这些函数可以帮助程序员完成各种任务,如文件处理、字符串处理和数学计算等。这些函数是C程序员必备的工具之一。

  4.  应用广泛:由于C语言具有高效、可移植和丰富的库函数等优点,它被广泛应用于系统软件、嵌入式系统、游戏开发、科学计算、互联网应用和金融行业等领域。

总体来说,C语言是一种简洁、高效、可移植的编程语言,具有广泛的应用领域。学习C语言可以帮助程序员掌握编程基本原理和技术,为其未来的编程生涯奠定坚实的基础。

EasyX简介

EasyX是一款基于C++语言的简单易用的图形界面库,可以轻松实现窗口、绘图、动画等功能。它是对Windows GDI和GDI+的封装,使得程序员能够更加方便地进行二维图形绘制和窗口控制。

EasyX提供了丰富多彩的绘图函数,包括绘制线段、矩形、圆形、曲线、文字等,同时还支持多种颜色和渐变效果。此外,EasyX还提供了一些窗口控制函数,使得程序员可以轻松地创建、打开、关闭窗口、设置窗口大小等。

EasyX对于初学者来说非常友好,它的函数名和参数都比较易懂,而且在官方网站上也提供了详细的使用说明和示例代码,帮助用户更快地上手使用。此外,EasyX还提供了一些常用的功能模块,如游戏引擎、音乐播放器等,使得程序员可以更快地开发出功能完备的应用程序。

EasyX支持多种编译器,包括Visual Studio、Code::Blocks、Dev-C++等,用户可以根据自己的喜好选择不同的编译器进行开发。其内置了一些常用的头文件和库文件,使得程序员可以更加方便地编写代码,减少了繁琐的配置工作。

总体来说,EasyX是一款非常实用、易用的图形界面库,适用于想要快速开发二维图形应用程序的C++初学者和开发者。它简洁易懂的函数调用方式和丰富多彩的绘图效果,可以让程序员在短时间内快速实现自己的创意。

EasyX下载安装

1.进入EasyX官网,点击下载按钮开始下载

图片

2.下载完成后进入下载目录,双击.exe文件开始安装

图片

3.按如下步骤进行安装即可

图片

图片

图片

文字跑马灯

程序设计

#include <graphics.h>
#include <time.h>
#include <stdio.h>
#include <conio.h>
#include <vector>
using namespace std;
#define MAX_TEXT_SIZE 20        // 最小文字大小
#define MAX_TEXT_COUNT 15       // 最大同时显示的文字数量
#define MAX_TEXT_COUNT 15    // 最大句子数量
#define MAX_TEXT_BUFFER 255     // 每一句文字的最大字符个数
int main()
……(文末公众号免费领取完整代码哦)

具体分析

本程序是一个基于C语言的文字跑马灯程序,可在Windows平台上运行。

程序中主要使用了Windows.h头文件下的相关API函数和graphics.h头文件下的相关绘图函数来实现文字的滚动效果。

程序中定义了一个TextContent结构体,用于存储文字的相关信息,如横坐标、纵坐标、大小、颜色、内容等。同时,还定义了一些常量,如最小文字大小、最大同时显示的文字数量、句子数量等。

在InitText函数中,程序通过随机生成一些文字的相关信息,如大小、速度、方向等,并将其存储到TextContent结构体中。在InitTexts函数中,程序初始化了所有文字的相关信息。

在MoveText函数中,程序通过循环遍历所有已经存在的TextContent结构体,实现文字的滚动效果。具体实现方式为:首先计算出文字的新位置,然后删除原来的文字,最后在新位置上绘制出新的文字。

在主函数中,程序通过获取系统屏幕的宽度和高度来确定绘图窗口的大小,然后调用initgraph函数创建绘图窗口。接着使用GetHWnd函数获取绘图窗口句柄,并使用SetWindowPos函数设置窗口位置。最后,在循环中调用MoveText函数实现文字的滚动效果。

小伙伴们学会了吗,赶紧写一个文字走马灯送给她吧!

运行结果

图片

写在后面

⭐我是一只有趣的兔子,感谢你的喜欢!⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科大蒋彬课题组开发 FIREANN,分析原子对外界场的响应

内容一览&#xff1a; 使用传统方法分析化学系统与外场的相互作用&#xff0c;具有效率低、成本高等劣势。中国科学技术大学的蒋彬课题组&#xff0c;在原子环境的描述中引入了场相关特征&#xff0c;开发了 FIREANN&#xff0c;借助机器学习对系统的场相关性进行了很好的描述。…

js执行异常处理 箭头函数 正则表达式

JS代码执行过程中&#xff0c;可能会出现异常 try-catch-finally try块包含可能抛出异常的代码&#xff0c;catch块包含处理异常的代码。finally 块始终执行&#xff0c;无论是否抛出异常。 try代码块出现异常 执行catch代码块 finally不管try代码有无异常 都会执行fina…

NX二次开发UF_CURVE_convert_conic_to_gen 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_convert_conic_to_gen Defined in: uf_curve.h int UF_CURVE_convert_conic_to_gen(UF_CURVE_conic_p_t conic_data, UF_CURVE_genconic_t * gen_conic_data ) overview 概…

给定序列a,选k个数排成一排,从左往右扫,如果当前数小于上一个数,那么当前数变成上一个数,然后形成最后的序列,问形成的序列有多少种

题目 #include<bits/stdc.h> using namespace std; #define int long long const int maxn 3005, mod 1e9 7; int a[maxn], b[maxn], cnt_low[maxn];//cnt_low[i]表示小于i的数字个数 int sum[maxn][maxn];//前缀和 int f[maxn][maxn];//f[i][j]表示选了i个数&#x…

第二十章——多线程

Windows操作系统是多任务操作系统&#xff0c;它以进程为单位。一个进程是一个包含有自身地址的程序&#xff0c;每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间&#xff08;也可以称为CPU时间片&…

中非市场开发攻略,走进非洲唯一废除死刑的国家

中非共和国是位于非洲中部的一个国家&#xff0c;是世界最不发达国家之一&#xff0c;经济以农业为主&#xff0c;工业基础薄弱&#xff0c;80%以上的工业品靠进口&#xff0c;中国是其重要的贸易伙伴之一。今天就来跟大家聊聊中非市场的开发攻略。文章略长&#xff0c;大家点赞…

2311d,d运行时勾挂

原文 上周,我开始转换_d_arrayliteralTX为模板.勾挂有点类似_d_newarrayT,因为用它来分配数组字面,如[1,2,3]. 注意,与也会初化新创建数组的_d_newarrayT不同,_d_arrayliteralTX只是为它分配内存.来限制传递给勾挂的参数数. 如果它也要初化数组,它必须按额外变参接收内容.我坚持…

E云管家微信群聊机器人开发

请求URL&#xff1a; http://域名地址/modifyGroupRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是String登录实例标识chatRo…

Linux学习笔记6-串口应用

到现在为止都是在开发板上运行的裸机程序&#xff0c;相当于之前学习STM32单片机时走过的路&#xff0c;还没有真正进入到核心的驱动开发部分&#xff0c;但这都是基础&#xff0c;所以慢慢来不着急。 接下来进入串口通信的学习&#xff0c;和GPIO一样&#xff0c;也是和单片机…

Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)

博主介绍&#xff1a;Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 &#x1f345;文末获取源码下载地址&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb;…

全新爱蜗影视优码双端影视源码v9.1/影视视频APP源码+支持代理/在线支付+支持对应苹果CMS

源码简介&#xff1a; 这个是最新爱蜗影视优码双端影视源码&#xff0c;作为实用方便的影视视频APP源码&#xff0c;它不仅支持代理/在线支付&#xff0c;而且也支持对应苹果CMS。 爱蜗影视优码双端影视支持对应苹果CMS支持代理在线支付 带图文教程&#xff0c;全新美化多功能…

统信UOS上使用localsend传输文件

原文链接&#xff1a;统信UOS上使用localsend传输文件及文件夹方法 hello&#xff0c;大家好&#xff0c;今天带给大家一个全新的主题&#xff1a;在统信UOS上如何高效使用 localsend 软件进行文件和文件夹的传输。这篇文章将为您提供详细的指导和操作步骤&#xff0c;让您能够…

Couchdb 命令执行漏洞复现 (CVE-2017-12636)

Couchdb 命令执行漏洞复现 &#xff08;CVE-2017-12636&#xff09; 1、下载couchdb.py 2、修改目标和反弹地址 3、Python3调用执行即可 couchdb.py文件下载地址: https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py ‍ 在VULFocus上开启环境 …

Java之面向对象《ATM自动取款机》

一、前言&#xff1a; 关于上次我写的博客文章中"Java之《ATM自动取款机》(面向对象)"&#xff0c;里面还不够完善&#xff0c;因为在各个服务功能相互跳转时&#xff0c;会出现混乱问题。这次我对其进行了修改和改进&#xff0c;若还有其它在大家测试时出现的bug请及…

Linux网络

Linux网络 1、Linux网络配置文件 ​ 查看第一张网卡的网卡信息&#xff1a; [rootlocalhost yum.repos.d]# cat vi /etc/sysconfig/network-scripts/ifcfg-ens33 cat: vi: 没有那个文件或目录 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes I…

HarmonyOS-Service服务开发(一)

文章目录 创建新项目启动Serviceets获取service的bundleName DataAbility开发指导开发Data步骤创建Data 创建新项目 ServiceAbility开发指导 在config.json中也有配置出现 启动Service ets获取service的bundleName 项目的bundleName service的bundleName 这里serviceAbil…

vs2019 - MFC对话框程序的工程名称不支持下划线命名法

文章目录 vs2019 - MFC对话框程序的工程名称不支持下划线命名法概述笔记备注END vs2019 - MFC对话框程序的工程名称不支持下划线命名法 概述 正在写账单分析程序, 用MFC 对话框. 因为比较习惯下划线命名法, 就在向导中给工程名称起了一个my_test这样的名称(下划线命名法, 小…

车载通信架构 —— 传统车内通信网络CAN(可靠性为王)

车载通信架构 —— 传统车内通信网络CAN(可靠性为王) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非…

antv/g6的学习总结

新建一个简单实例 1、使用命令行在项目目录下执行以下命令 cnpm install --save antv/g6 2、创建容器 <div id"mountNode"></div> 3、在需要用的 G6 的 JS 文件中导入 import G6 from antv/g6; 4、 数据准备 引入 G6 的数据源为 JSON 格式的对象。…

mysql 计算同比、环比,查询结果拼接成列、行、

一、理论 国家统计局同比、环比计算公式 增长速度是反映经济社会某一领域发展变化情况的重要数据&#xff0c;而同比和环比是反映增长速度最基础、最核心的数据指标&#xff0c;也是国际上通用的指标。在统计中&#xff0c; 同比和环比通常是同比变化率和环比变化率的简称&…