C语言 创建时钟程序



编写一个时钟程序,实现如下功能:a)按任意键启动定时器;b)按"S"键启动计时器,按"E"键停止计时器或时间为00:00:00时。

这是我到目前为止写的

#include <stdio.h>
#include <windows.h>
#include <conio.h>
main()
{
 long int t;
 int flag =0;
 t = 86400;
 printf("press S start, press E stopn");
 while(1)
 {
  if (kbhit()== 'S' || kbhit() == 's')
   flag =1;
  if (getch() == 'E' || getch() == 'e')
  { flag =0;
   continue;
  }
  if(t <= 0)
   break;
  if(flag == 1)
  {
  t=t-1;
  Sleep(1000);
  printf("%d ",t);
  }
 }
}

嗯,我真的不知道如何实现控制功能。我怎么能按'E'让计时器停止,按'S'让计时器再次运行?

我是初学者,不能一遍又一遍地得到正确的程序。我希望你能帮助我。谢谢!

您调用kbhit()两次,每个循环只需要一次。它不返回char
调用getch()两次,每次循环只需要调用一次。
你应该改进flag的含义。可以改成StoppedFlag

 while (1) {
  if (kbhit()) {
    char ch = getch();
    if ((ch == 'S') || (ch == 's')) {
      flag = 0;
    }
    else if ((ch == 'E') || (ch == 'e')) {
      flag = 1;
    }
  }
  else {
    if(t <= 0) {
      break;
    }
    if (flag == 0) {
      t=t-1;
      Sleep(1000);
      printf("%ld ", t);
    }
  }
}

相关内容

最新更新