任意键开始、暂停

大家写程序的时候,经常会遇到“按任意键开始”、“按任意键继续”等这样的功能。其实这样的功能实现起来也并不困难,下面总结几种方法,经供参考:

任意键继续

1、_getch() 

_getch() 是 conio.h 里面声明的一个函数,功能是从控制台输入一个字符(控制台不显示该输入),使用时直接添加即可实现“按任意键继续”。

2、system("pause")

system 是 stdlib.h 里面声明的一个函数,功能是通过控制台执行一个命令。该函数需要一个字符串指针参数表示命令。

使用时,输入"pause"指令即可。 "pause"就是 system 函数将要执行的命令,缺点是该命令会暂停并显示信息“Press any key to continue ... 。

 

任意键开始

这里我提供一种利用while()循环实现的方法:

	while (!_kbhit()); // 没有按键就死循环   按下任意键开始
	//清空缓冲区
	FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));

Windows 系统下的 vs 中可以使用 _kbhit() 函数来获取键盘事件,使用时需要加入 conio.h 头文件。由于按键时输入缓冲区的内容可能对程序运行产生影响,这里调用了 FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)) 函数清空缓冲区。

 

空格暂停、继续

另外,有些时候可能需要暂停、继续的功能,通常习惯用空格键控制,下面提供了一种方法:

    char key = _getch();        //获得按键
    if(key == ' ')
    {
        lable:
            while (!_kbhit()); // 没有按键就死循环   按下任意键开始
            if (_getch() != ' ')	goto lable;    //再次检测到空格继续
    }

    如果不想用 goto 语句,也可以用这种写法
    if (_getch() == ' ')
    {
        while (1)  
        {
            //fputs("pause", stdout);	//向屏幕输出提示信息
            if (_getch() == ' ')
                break;
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫RT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值