C语言如何部分清屏128*64

C语言如何部分清屏128*64,第1张

#include<stdioh>

#include<dosh>

#include<conioh>

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(开屏式清屏)nnn/

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;

rhah=2;

rhdl=y;

rhdh=x;

rhbh=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");

}

}

}

使用时头文件加上#include<conioh>

然后再需要清屏的地方使用clrscr();即可

示例如下:

clrscr是TC特有的,其它的C语言环境没有这个函数,也就没有头文件包含这个函数。

TC中使用clrscr()必须#include<conioh>其他编译环境建议使用system("cls");来替代clrscr();system()函数在#include <stdlibh>里面

cleardevice的作用是退出图形模式,之后不能再画图了,这种清屏效果一般用在程序的最后。你可以用背景色填充当前的图形,也可以用背景色画一条条紧挨着的直线,实现拉幕式清屏等特殊效果。

1、main的方法代码获取指定的字符串

2、把字符串循环出并清除的代码

3、把字符循环出删除方法代码

4、找到这个字符串的结尾 并记录字符串长度方法代码

5、从右开始读取 并检测是否为特定字符,不是则放入临时的内存,找到后删除并退出的方法代码,这样就可以清除屏幕了

你们在32位下(比如VC、gcc)试试,哪里来的clrscr()

clrscr()只是TC的一个函数,不是库里的。

system("cls");

system函数表示执行一条系统命令,后面的cls即为DOS下的清屏命令。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12153875.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存