要求:基本模拟时钟显示
思路:数字时钟显示本质上就是输出,但是CPU速度过快,刷新太快。所以设置延时函数,每隔一定最小单位显示时间刷新一次。
#include<stdio.h> #include<windows.h> static void SetPos(int x, int y) { COORD point = { x, y };//光标要设置的位置x,y HANDLE HOutput = GetStdHandle(STD_OUTPUT_HANDLE);//使用GetStdHandle(STD_OUTPUT_HANDLE)来获取标准输出的句柄 SetConsoleCursorPosition(HOutput, point);//设置光标位置 } int main() { int hours = 0; int minutes = 0; int seconds = 0; while(1){ printf("%02d:%02d:%02d", hours, minutes, seconds); SetPos(0,0); Sleep(0.1); //Time processing seconds++; if(seconds == 60){ seconds = 0; minutes++; } if(minutes == 60){ minutes = 0; hours++; } if(hours == 24){ hours = 0; } } }
工具:windows库下的设置光标函数,调用SetPos(x,y)函数在光标(x,y)处输出时间。System()函数可以调用Dos命令,但是用system("cls")清屏会闪烁,没有SetPos(x,y)好。Sleep(time)函数延时,传入参数time为毫秒,sleep(1000)即延时1秒。