试图使用字符串比较比较时间

0 c string time compare time.h

我正在构建这个代码,在当前时间增加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");
                    }
            }
}
Run Code Online (Sandbox Code Playgroud)

我认为字符串比较存在问题.虽然不确定!

这是输出:

Time now: 12:41:17
New time: 12:41:27
time Actual: 12:41:17
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 5

timeN在循环之前设置一次"实际"时间字符串().您需要在循环中连续设置它,否则它将永远不会改变.