我需要让用户在迭代/循环时停止循环。
我希望我的程序多次显示“sec”,直到用户暂停它为止。
#include<stdio.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
#define p printf
#define s scanf
int main(void)
{
int i,j;
time_t seconds;
do
{
i=seconds;
seconds=time(NULL);
j=seconds;
if(i!=j)
{
p("sec");
}
}while(j==j);
getchar();
return(0);
}
使用getch或scanf,每次都会停止循环。有人能帮我吗? 我当时认为可能有一些功能可以检测是否按下了某个键,但是没有等待它被按下以继续循环。当然j == j是保持无限循环。
OMG我在这里找到了解决方案:c programming check if key pressed without stopping program
如果你想我不能发布这个已经完成的节目,那就是一个想要提高枪击率的朋友。
答案 0 :(得分:0)
您可以使用信号处理程序来处理SIGINT。因此,当用户按下Ctrl + C时,控件将被传递给信号处理程序,您可以选择在其中执行的操作。
void handler(int);
int main(){
signal(SIGINT, handler);// Register the signal handler
...
}
void handler(int sig)
{
// Your logic to decide what to do when Ctrl + C is pressed
}
参考: [1] - http://www.csl.mtu.edu/cs4411.ck/www/NOTES/signal/install.html