用c语言实现艺术清屏
问题的提出:我们在编制程序时,经常要用到清屏处理,如dos下的cls,Turbo C下的clrscr()等都具有清屏功能,但这些均为一般意义的清屏,并未显示其清屏规律.而有时为了达到清屏的艺术美观,往往对清屏有一些具体要求,如:开幕清屏;闭幕清屏;上清屏;下清屏;中清屏.为此,这里用C语言编制了几个子函数,用于程序中时,既可达到清屏的目的,有能增加屏幕的艺术美观.
子函数及演示程序:
#include<stdio.h>
#include<dos.h>
#include<conio.h>
void goto_xy(int x,int y);
void dcls(int x1,int x2,int y1,int y2);
void bcls(int x1,int x2,int y1,int y2);
void kcls(int x1,int x2,int y1,int y2);
void recls(int x1,int x2,int y1,int y2);
void zcls(int x1,int x2,int y1,int y2);
void puta(void);
/*--------------演示程序---------------------*/
main()
{
puta();
getch();
dcls(0,4,0,79);
getch();
puta();
getch();
bcls(0,25,0,79);
getch();
puta();
getch();
zcls(0,25,0,79);
getch();
}
/*********center clear screen(中心清屏)***********/
void zcls(int x1,int x2,int y1,int y2)
{
int x00,y00,x0,y0,i,d;
if((y2-y1)>(x2-x1)){
d=(x2-x1)/2;
x0=(x1+x2)/2;
y0=y1+d;
y00=y2-d;
for(i=0;i<(d+1);i++)
recls((x0-i),(x00+i),(y0-i),(y00+i));
delay(10);
}
else{
d=(y2-y1)/2;
y0=(y1+y2)/2;
x0=x1+d;
x00=x2-d;
for(i=0;i<d+1;i++)
recls(x0-i,x00+i,y0-i,y00+i);
delay(10);
}
}
/************* clear rectangle side(矩形边清屏)***********************/
void recls(int x1,int x2,int y1,int y2)
{
int i,j;
for(i=y1;i<y2;i++){
goto_xy(x1,i);
putchar(' ');
goto_xy(x2,i);
putchar(' ');
delay(10);
}
for(j=x1;j<x2;j++){
goto_xy(i,y1);
putchar(' ');
goto_xy(j,y2);
putchar(' ');
delay(10);
}
}
/******************open screen clear(开屏式清屏)*********************/
void kcls(int x1,int x2,int y1,int y2)
{
int t,s,i,j;
t=s=(y1+y2)/2;
for(;t<=y2;t++,s--)
for(j=x1;j<x2;j++){
goto_xy(j,t);
putchar(' ');
goto_xy(j,s);
putchar(' ');
delay(10);
}
}
/*****************close screen clear*****闭幕式清屏*******************/
void bcls(int x1,int x2,int y1,int y2)
{
int t,s,j;
t=y1;
s=y2;
for(t=y1;t<(y1+y2)/2;t++,s--)
for(j=x1;j<x2;j++){
goto_xy(j,t);
putchar(' ');
goto_xy(j,s);
putchar(' ');
delay(10);
}
}
/******************bottom screen clear(自下清屏)********************/
void dcls(int x1,int x2,int y1,int y2)
{
int t,s,j,i;
t=s=(y1+y2)/2;
for(j=x2;j>x1;j--)
for(i=y1;i<y2;i++){
goto_xy(j,i);
putchar(' ');
delay(10);
}
}
/******************设置光标子函数******************/
void goto_xy(int x,int y)
{
union REGS r;
r.h.ah=2;
r.h.dl=y;
r.h.dh=x;
r.h.bh=0;
int86(0x10,&r,&r);
}
/**********************在屏幕上打出一连串的a字母用于演示程序******************/
void puta(void)
{
int i,j;
for(i=0;i<24;i++){
for(j=0;j<79;j++){
goto_xy(i,j);
printf("a");
}
}
}
其中主函数调用只是个演示程序,具体应用时稍加修改即可
转载于:https://www.cnblogs.com/aween/archive/2006/02/28/339897.html
用c语言实现艺术清屏相关推荐
- C语言中的清屏函数(自己编写)
在csdn论坛里看到这样一个问题:如何在c语言命令提示下清除屏幕? 感兴趣,随查之. 有解: #include<stdio.h> #include<dos.h> void ma ...
- c语言菜单怎么清空,你好,请教个C语言菜单实现清屏功能。就是用switch里面输入一个数子,就实现部分清屏或者全清屏...
在标准的C语言中,没有所谓的清屏函数的,特别是部分清屏 C语言它只是一个标准,只有标准的输入/输出函数 而你要的菜单/清屏功能,必须调用系统的函数才能实现(不同系统用户界面设计方式是不同的) 如在wi ...
- 命令行执行C语言程序时清屏命令
先导入表头文件 #include <stdlib.h> 然后调用system()函数 括号内的指令执行效果和直接在命令行执行的指令是一致的,所以命令行可以执行的命令,在这里都可以执行 Wi ...
- c语言重画清屏函数,写了个小程序,一直会闪屏,用的gotoxy函数,求大神教
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include // 全局变量 int position_x,position_y; // 飞机位 ...
- c语言printf清屏,C语言入门 — printf 使用方法
本章节讲如何使用printf打印不同形式的内容,printf是c语言里常用的打印接口,也是c标准函数库,使用时需要#include ,下面讲讲如何使用printf: 一.printf 的基础知识: 1 ...
- 编写C语言跨平台函数(以清屏和休眠函数为例)
支持C语言的平台有许多,常见的编译器如VC.gcc.Clang等.不同的编译器共同点是都支持标准C(ANSI C),但是各自却又有自己独立的.平台相关的功能以及函数接口.这通常为程序的移植性带来很多问 ...
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- c语言一些如暂停、清屏等功能(持续更新ing...)
不完全代码: #include<stdlib.h>#include <windows.h>system("cls");//清屏system("pa ...
- c语言休眠函数 vs,编纂C语言跨平台函数(以清屏和休眠函数为例)
编写C语言跨平台函数(以清屏和休眠函数为例) 支持C语言的平台有许多,常见的编译器如VC.gcc.Clang等.不同的编译器共同点是都支持标准C(ANSI C),但是各自却又有自己独立的.平台相关的功 ...
最新文章
- 奥比中光Gemini 3D双目结构光深度相机在Android平台上深度数据噪点非常多的问题
- 高斯拟合原理_解读 | 得见的高斯过程
- redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类
- iOS之仿QQ点赞按钮粒子效果的实现
- SharePoint 2010 master page 控件介绍(5):其他
- 为什么要学习Java EE?需要掌握哪些技能?
- centos升级glibc(升级到 2.17版)
- WebSphere中连接池的配置
- 3DShader之法线贴图(normal mapping)
- 动手学深度学习Pytorch Task08
- Scala之flatMap操作
- cleverhans库——FGSM代码实战
- 地理入门-经纬度时区速成总结篇(转)
- IE浏览器无法连接网络的解决办法
- 网站性能常用指标与优化方法
- 阿里p9就三分钟。。。。。
- 离散型均匀分布 连续型均匀分布
- 微信自定义分享功能二次封装
- 新手第一次用云渲染如何快速上手
- Cesium 热力图(可直接使用)
热门文章
- 【原创】ASP.NET C# 对SQL/ACCESS 数据库的备份和还原函数
- 关闭tomcat报错Cannot allocate memory
- oracle goldengate实施简明介绍
- 嵌入式Linux之旅——环境搭建篇之烧写整个系统
- 任务二十九:表单(一)单个表单项的检验
- T450的Fn lock
- C#——await与async实现多线程异步编程
- Tomcat6.0配置集合
- 用winformz时间格式不正确_巨峰葡萄不能膨大?错!在正确的时间,用对方法,收获优质果穗型...
- Win10将引入HomeHub功能 和Google Home和Amazon Echo竞争