目录
1.前言
2.效果展示
3.代码讲解
3.1 阶段一
3.2 延迟效果
3.2 视觉效果实现
4.结语
1.前言
我们经常会看见广告词从两边向中间慢慢显示,那么利用代码是否也能做出这样的效果呢??
今天,我们就来探讨一下怎么用代码来完成这一显示方式。
2.效果展示
这里我用一句歌词的显示来示范
双向显示字符效果
3.代码讲解
根据效果展示,很多人可能会觉得:害,这还不简单,直接全部上printf逐个打印不就好了?
哈哈,当然是可以的,但是这样就无法做出动态的感觉。
最合适的办法就是利用两组数组,并且循环替换数组的元素,最后打印出数组。循环此动作,便是双向显示字符的精髓所在。那具体如何操作呢?
#include <stdio.h>
//示例材料
//And I'm not gonna lose you now
//******************************
int main()
{//建立两个数组char arr1[] = "And I'm not gonna lose you now";char arr2[] = "******************************";//建立左,右两个变量作为下标int right = strlen(arr2)-1;int left = 0;//循环打印部分while (left <= right||left == right + 1){ //打印数组2int i = 0;for (i = 0; i <= strlen(arr2) - 1; i++){printf("%c", arr2[i]);}printf("n");//替换数组元素arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;}
}
像这样,我们已经可以做到这样的效果
那测试过上述代码的小伙伴肯定会发现:你这个代码他刷刷刷就打印完了,也没有动态的效果呀
是的,这依靠这些代码,是不能感受出缓慢变化这一过程的,因为打印的速度太快了。
那么我们该怎么办呢?
这时候我们就该介绍一下头文件:windows.h 里面的Sleep()了
#include <windows.h>
Sleep()
Sleep函数的作用是延迟执行当前脚本若干秒。括号内填写数字,即是延迟的时间,单位是毫秒。
#include <stdio.h>
#include <windows.h>
//示例材料
//And I'm not gonna lose you now
//******************************
int main()
{//建立两个数组char arr1[] = "And I'm not gonna lose you now";char arr2[] = "******************************";//建立左,右两个变量作为下标int right = strlen(arr2)-1;int left = 0;//循环打印部分while (left <= right||left == right + 1){ //打印数组2int i = 0;for (i = 0; i <= strlen(arr2) - 1; i++){printf("%c", arr2[i]);}//延迟执行Sleep(200);printf("n");//替换数组元素arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;}
}
如此,便有了缓慢变化的感觉。
但是又有人说了:你这个代码打印了这么多行,跟你视频的示例完全不一样啊。
对的,我们每次打印都会在控制台留下一串痕迹,如果电脑能以超快的速度清空痕迹并打印出新的内容,就像几千张图片衔接成一段视频那样,是否就能产生示例视频中的视觉效果呢?答案是正确的,那么该怎么实现这灵魂的一步呢?
这里便要介绍头文件stdlib.h中的system(“cls”)了。
system();是执行系统的函数。
windows操作系统中cls是系统的控制台清屏函数。
利用清屏,我们就能展现上述中的视觉效果了!!!
#include <stdio.h>
#include <windows.h>
#include <windows.h>
//示例材料
//And I'm not gonna lose you now
//******************************
int main()
{//建立两个数组char arr1[] = "And I'm not gonna lose you now";char arr2[] = "******************************";//建立左,右两个变量作为下标int right = strlen(arr2)-1;int left = 0;//循环打印部分while (left <= right||left == right + 1){ //打印数组2int i = 0;//清屏system("cls");for (i = 0; i <= strlen(arr2) - 1; i++){printf("%c", arr2[i]);}Sleep(200);printf("n");//替换数组元素arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;}
}
4.结语
以上便是我们双向字符显示的全部内容啦,是不是很有趣呢?熟悉众多的函数以及操作符可以让我们用代码实现非常多的功能,甚至可以做出一个短视频。博主会与大家共同努力,一起进步的。
最后还是期待大家的点赞与关注啦,小白系列会持续更新的!!
本文发布于:2024-01-29 04:27:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647362912691.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |