vc6.0c语言如何延迟清屏时间,[转载]关于在vc6.0中输出运动的笑脸问题

首先在网上面看见的笑脸程序运行不了是因为编译器的不同产生的,vc中没有gotoxy函数。

所以产生了一些列的问题,现在我们首先就要解决指定光标位置的函数。

#include "windows.h"

void gotoxy(int x,int y)

{

COORD coord;

coord.X=x;

coord.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);

}

在vc6.0中自定义一个gotoxy函数。

SetConsoleCursorPosition是API中定位光标位置的函数。

console 控制台

cursor

光标

GetStdHandle(STD_OUTPUT_HANDLE)获取标准输出的句柄。 命令行的程序

会把字符输出到屏幕上。

handle就是句柄,句柄就是系统服务你的凭证。

你去过银行吧,门口有个排队机,

你从排队机上撕下一张票来,这个就是银行为你服务的凭证,没有这个凭证,银行不理你。

获取标准输出的句柄。 命令行的程序 会把字符输出到屏幕上,

用的就是这个句柄。

搞清楚这个问题后,我们继续做我们的事情:

struct move_point

{

int x,y;

int xv,yv;

}man;

int main()

{ man.xv=1;

man.yv=1;

/*给结构体的变量赋初值,这里是速度*/

while(man.x<100)

{

gotoxy(man.x,man.y);

printf(" ");

man.x+=man.xv;

man.y+=man.yv;

gotoxy(man.x,man.y);

printf("%cb",2);

}

getchar();

return 0;

}

这个时候发现达不到想要的效果,这是因为运行速度太快了。

所以我们还需要写点延时程序:

直接调用windows.h中的Sleep(num)就可以了,其中num是毫秒数,这里就设为1000即1秒。

哈哈,现在完整的程序如下:

#include "stdio.h"

#include "stdlib.h"

#include "windows.h"

void gotoxy(int x,int y)

{

COORD coord;

coord.X=x;

coord.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);

}

struct move_point

{

int x,y;

int xv,yv;

}man;

int main()

{ man.xv=1;

man.yv=1;

while(man.x<100)

{

Sleep(1000);

gotoxy(man.x,man.y);

printf(" ");

man.x+=man.xv;

man.y+=man.yv;

gotoxy(man.x,man.y);

printf("%cb",2);

}

getchar();

return 0;

}

现在感受到成功的喜悦了吧,而且在这个程序中还学到了清屏函数,调试程序如下:

void main()

{

int a=1;

while(a<100)

{ system("cls");

a++;

printf("%*c",a,2);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值