C语言艺术清屏
问题的提出:我们在编制程序时,经常要用到清屏处理,如dos下的cls,Turbo C下的clrscr()等都具有清屏功能,但这些均为一般意义的清屏,)B})fDB/p'J8fb0l2M'[h;h0`,@3@ZY3B
并未显示其清屏规律.而有时为了达到清屏的艺术美观,往往对清屏有一些具体要求,如:开幕清屏;闭幕清屏;上清屏;下清屏;中清屏.为此,这里
"u`r({*R*vW.K F
用C语言编制了几个子函数,用于程序中时,既可达到清屏的目的,有能增加屏幕的艺术美观.
子函数及演示程序:` `|3ls
#include<stdio.h>
#include<dos.h>
#include<conio.h>
^~+J|],H`
void goto_xy(int x,int y);e&M-cF'S_
void dcls(int x1,int x2,int y1,int y2);@(lz8RD1t'm9C}*V(h
void bcls(int x1,int x2,int y1,int y2);tj7f8c$p2k~,`vjn
void kcls(int x1,int x2,int y1,int y2);.oVR+P"MV
void recls(int x1,int x2,int y1,int y2);
void zcls(int x1,int x2,int y1,int y2);
void puta(void);
/*--------------演示程序---------------------*/Q0`oB(q0_
main()2Jjs1hA%Ve;[
{9a#vO5T ~*d4Z.?P
puta();
getch();_sZ4u"z)]]
dcls(0,4,0,79);t2F0w]@ D!P~+|
getch();.F9e)f(^y'RG!}
puta();
getch();+z5wvn$I2zJ+C!S
bcls(0,25,0,79);
getch(); ]Zq|#^{8j/k+G w.M
puta();)t[^'cz.q xx
getch();mV!M r:pw @\3PP _S
zcls(0,25,0,79);
getch();i/cc6N2F8po:f
} a$NfcD`?7Pu
/*********center clear screen(中心清屏)***********/
void zcls(int x1,int x2,int y1,int y2)
{ z1?upt,y'{%s
int x00,y00,x0,y0,i,d;
if((y2-y1)>(x2-x1)){U~|-vQjp~ g
d=(x2-x1)/2;
x0=(x1+x2)/2;2s3~/x&x$T5j-[ {m
y0=y1+d;i|sN2xD[6s
y00=y2-d; vlwx9|2XZS @Wz
for(i=0;i<(d+1);i++)
recls((x0-i),(x00+i),(y0-i),(y00+i));
delay(10); t&O G}/H8oYcc.fm
}
else{
d=(y2-y1)/2;
y0=(y1+y2)/2;
x0=x1+d;`W0FRW,zT
x00=x2-d;
for(i=0;i<d+1;i++)
recls(x0-i,x00+i,y0-i,y00+i);
delay(10);
}
}
ji+O,T*V[]Yc
/************* clear rectangle side(矩形边清屏)***********************/
2r$kYt,^,P&l