Я создаю этот код, который добавляет 10 секунд к текущему времени, а затем сравнивает обновленное время с фактическим временем и когда они совпадают, есть сообщение для печати. вот мой код. может кто-нибудь сказать мне, где я иду не так. вот мой код:пытается сравнить время, используя строку сравнения
#include <stdio.h>
#include <time.h>
int main(int argc, char **argv)
{
time_t timeNow;
time_t timeAct;
struct tm* time_info;
time(&timeNow);
time(&timeAct);
time_info = localtime(&timeNow);
char timeStr[sizeof"HH:MM:SS"];
char timeN[sizeof"HH:MM:SS"];
strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info);
printf("Time now: %s\n", timeStr);
timeNow += 10;
time_info = localtime(&timeNow);
strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info);
printf("New time: %s\n", timeStr);
time_info=localtime(&timeAct);
strftime(timeN, sizeof(timeN), "%H:%M:%S", time_info);
printf("time Actual: %s\n",timeN);
while(1)
{
if(strcmp(timeStr,timeN) == 0)
{
printf("hi");
}
}
}
я думаю, что есть проблема с строкой сравнения. не уверен, хотя!
здесь выход:
Time now: 12:41:17
New time: 12:41:27
time Actual: 12:41:17
В чем проблема, с которой вы сталкиваетесь? Не то, чтобы ваш цикл while (1) 'никогда не прерывался. – Marievi
да, мне нужно перерыв; проблема в том, что я не могу получить свой «привет». @Marievi –
Еще один комментарий: вам не нужен цикл while, поскольку вы все время сравниваете одни и те же строки, и они не будут меняться внутри цикла (если вы не планируете что-то еще). – Marievi