如果運行此操作,數字時鐘將打開。它顯示小時,分鐘和秒,並突出顯示當前時間。如何在C工作中製作數字時鐘
我現在想要的是讓它運行。當添加第二個時間時,突出顯示的數字應該向右移動一次。明顯。
我只是不知道該怎麼做,請幫忙嗎?
下面是代碼我現在所擁有的:
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <unistd.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
#define WHITE 15
int main()
{
int uren, minuten, seconden;
time_t ltime;
struct tm *Tm;
ltime = time(NULL);
Tm = localtime(<ime);
uren = Tm->tm_hour;
minuten = Tm->tm_min;
seconden = Tm->tm_sec;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("Uren:\n");
int i;
for (i = 0; i < 24; i++) {
if(uren == i){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
printf("%i ", i);
}else {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("%i ", i);
}
}
printf("\n\nMinuten:\n");
int j;
for(j = 0; j < 60; j++) {
if(minuten == j){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
printf("%i ", j);
}else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("%i ", j);
}
}
printf("\n\nSeconden:\n");
int k;
for(k = 0; k < 60; k++) {
if(seconden == k){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
printf("%i ", k);
}else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
printf("%i ", k);
}
}
return 0;
}
難道你不能在它周圍放置一個'while(true)',清除屏幕並重新打印時間?通過睡眠線程1秒(谷歌它)結束循環 – Toad 2013-02-13 12:25:00
您使用'#define WHITE 15',然後仍然在代碼中使用'15' ... – 2013-02-13 12:32:44
@Toad他可以做到這一點,但在我看來,那裏必須是更好的方式,就像人們用霰彈槍殺死蒼蠅一樣,但有更好的辦法。 – mah 2013-02-13 12:33:46