windows环境下C++怎么用signal函数捕捉Ctrl C 10

我在网上找的好多都有这段代码while(1){cin>>ch;Sleep(10);if(cin.fail()){cin.clear();cin.sync();}}看不懂什... 我在网上找的好多都有这段代码
while(1)
{ cin>>ch;
Sleep(10);
if(cin.fail())
{cin.clear();
cin.sync();}
}
看不懂什么意思? 这和捕捉ctrl c 有关系吗?
展开
 我来答
百度网友8c1b1489b6
2017-07-03 · TA获得超过301个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:165万
展开全部
/*注册信号处理函数。给你个例子*/
#include <signal.h>
#include <Windows.h>
#include <iostream>
using namespace std;
void cs(int n)
{
if(n==SIGINT)
{
cout<<"\n你按下了ctrl+c"<<endl;
signal(SIGINT, cs);
return;
}
if(n==SIGBREAK)
{
cout<<"\n你按下了ctrl+break,现在退出程序\n";
exit(0);
}
}
int main()
{
char ch;
signal(SIGINT, cs); /*注册ctrl+c信号捕获函数*/
signal(SIGBREAK,cs); /*注册ctrl+break信号捕获函数*/
while(1)
{
cin>>ch;
Sleep(10);
if(cin.fail())
{
cin.clear();
cin.sync();
}
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式