C++怎么实现:不输入任何字符(键盘无操作)时自动跳过程序,有输入执行.类似while(..){..}

是无操作自动跳转进行下一步,有操作就执行代码.不是等待输入.希望高手说的通俗详细点,谢谢了.... 是无操作自动跳转进行下一步,有操作就执行代码.不是等待输入.希望高手说的通俗详细点,谢谢了. 展开
 我来答
ssilspro
2011-08-07 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1698万
展开全部
用kbhit检查按键, 然后再取得按键, 没有按键就不用等待按键了, 另外像F1,上下键一类的好像是2个码的, 所以多取得1次

#include <stdio.h>
#include <conio.h>
#include <time.h>
int main()
{
clock_t t;
const int timeout = 4000; // clock() 返回毫秒
int key,count,i = 0;
while(1)
{
t = clock() + timeout;
key = 0;
while(t>clock())
{
count = (t-clock())/1000;
printf("\r%d",count);
if(kbhit()) //没有的话, 试试_kbhit()
{
_getch(); //vc6没有getch, 只有_getch, 有的编译器这2还有不同
if(kbhit())_getch();
key = 1;
break;
}
}
printf("\n");
if(key)
{
printf("code %d\n",i++);
//...
}else{
printf("time out\n");
//
}
}
return 0;
}
dongyue2008
2011-08-07 · TA获得超过3602个赞
知道大有可为答主
回答量:1300
采纳率:100%
帮助的人:583万
展开全部
我的思路是用 CreateThread 创造两个线程,一个线程 waitfor 用来计时,一个线程 input 用来等待输入,输入的变量可以弄成全局变量。当 waitfor 线程发现时间已经经过指定秒数的时候,就关闭 input 线程,继续执行自己的内容;当 input 线程得到输入的时候,就关闭 waitfor 线程,执行自己的代码。
这中间涉及到许多 API,你可以自己查一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫月居士
2011-08-07 · TA获得超过416个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:147万
展开全部
无操作是指直接按回车跳过么?用getch()函数。
不可能不等待输入啊。否则只要你不是一直按着键盘,系统自然会认为你永远无输入。
追问
我知道如果回车就判断getchar()是否为'\n'就行,但我不是这个意思..
while(1)//大循环
{
while(...) //键盘有输入执行代码段1,没有继续2.
{
//program code //1
}
//program ///2
}
追答
没有输入的话你肯定得有一个时间参量来判断吧。比如10s无操作跳出循环。在while的判断框里引入一个计时函数吧。具体怎么写我忘记了。。。记得有一个库的可以引入系统时间的。可以百科一下。。。
LS说的我也比较同意。这样的话还是双线程来写。一条是代码2.另一条代码1用触发式,有输入触发代码1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式