一个循环中,键入一个p,就暂停循环,怎么实现?

Season__0_0 2017-10-30 10:29:59
头文件啥的我就省略了,以下是循环体:
循环算法没问题,假设倒计时进行到一半,键入“p”让他暂停循环,可以实现吗??
求大神指教

while(1)
{
Sleep(1000);
Beep(1000,200);
second=second-1;
if(second==-1)
{
second=59;minute--;
if(minute==-1)
{
minute=59;hour--;
if(hour==-1)
{
hour=23;day--;
if(day==-1)
{
cout<<"time up!"<<endl;
break;
}

}
}

}
system("cls");
cout<<day<<"天"<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
}
...全文
451 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-10-30
  • 打赏
  • 举报
回复
#include <conio.h>
int k;
//...
while(1) {
    Sleep(1000);
    Beep(1000,200);
    second=second-1;
    if(second==-1) {
        second=59;minute--;
		if(minute==-1) {
			minute=59;hour--;
			if(hour==-1) {
				hour=23;day--;
				if(day==-1)	{
					cout<<"time up!"<<endl;
					break;
				}

			}
		}
	}
	system("cls");
    cout<<day<<"天"<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
    if (_kbhit()) {
        k=getch();
        if (0==k||0xe0==k) k|=getch()<<8;//非字符键
        if (k=='p' || k=='P') {//暂停Pause
            while (1) {//清除缓冲的所有按键
                if (_kbhit()) {
                    k=getch();
                    if (0==k||0xe0==k) k|=getch()<<8;//非字符键
                } else break;
            }
            k=getch();//等待按任意键
            if (0==k||0xe0==k) k|=getch()<<8;//非字符键
        } else if (k=='s' || k=='S') {//停止Stop
            break;
        }
    }
}

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧