迭代直到在C

时间:2015-05-29 19:27:07

标签: c

我需要让用户在迭代/循环时停止循环。

我希望我的程序多次显示“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

如果你想我不能发布这个已经完成的节目,那就是一个想要提高枪击率的朋友。

1 个答案:

答案 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