我写了这个简单的程序:
如果程序等待输入时,我按下Ctrl+C,会得到以下输出:
输入文本:收到 SIGINT
void sig_ha(int signum)
{
cout<<"received SIGINT\n";
}
int main()
{
string name;
struct sigaction newact, old;
newact.sa_handler = sig_ha;
sigemptyset(&newact.sa_mask);
newact.sa_flags = 0;
sigaction(SIGINT,&newact,&old);
for (int i=0;i<5;i++)
{
cout<<"Enter text: ";
getline(cin,name);
if (name!="")
cout<<"Text entered: "<<name;
cout<<endl;
}
return 0;
}
如果程序等待输入时,我按下Ctrl+C,会得到以下输出:
输入文本:收到 SIGINT
输入文本:
输入文本:
输入文本:
输入文本:
(程序继续循环而不等待输入)
我该怎么办?