windows下 C++ 关于cin输入的问题

我想写一个比如voidsend(){cin.getline();}如果过了五秒还没有输入就自动退出函数这个该怎么写... 我想写一个比如
void send(){
cin.getline();
}
如果过了五秒还没有输入 就自动退出函数 这个该怎么写
展开
 我来答
匿名用户
推荐于2016-08-01
展开全部
单纯用c++不调用系统函数的话,这是不能实现的,因为这需要用到多线程。不过下面这段程序你可以看一下。
#include<iostream>
#include<ctime>
#include<cstdio>
using namespace std;
void send(char* ch)
{
cout<<"in send"<<endl;
time_t start,end=0;
time(&start);
while((end-start)<5||cin.getline(ch,99))
{

time(&end);
if((end-start)>5)
{
break;
}
cout<<end-start<<endl;
ungetc('\n',stdin); //注释这一行,就最后就可以输入 ,加上这一行5秒之后退出这个函数
}
cout<<"leave send"<<endl;
}
int main(void)
{
char ch[100];
send(ch);
cout<<"in main"<<endl;
return 0;
}
百度网友01aa0e4
2014-10-19 · TA获得超过123个赞
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:102万
展开全部
可以调用延时函数:Sleep(int n); //n表示毫秒数,延时5S,Sleep(5000);
使用时要添加头文件: #include <Windows.h>
追问
这样写么
cin.getline();

sleep(5000)
这样写的话 我不输入就一直卡在cin这里 sleep没用呀
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kirkbd
2014-10-19 · TA获得超过321个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:176万
展开全部
开个线程处理输入,定时器每隔五秒查看线程,如果线程还在就中断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8856203
2016-03-28
知道答主
回答量:11
采纳率:0%
帮助的人:1万
展开全部
cin 按书本来保证行,我就是那样搞定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式