C++闹钟,循环问题

C++ alarm clock, loop issue

本文关键字:问题 循环 闹钟 C++      更新时间:2023-10-16

我正在尝试制作一个可以多次设置的闹钟。这是代码

std::cout<<"Enter the link: ";
        std::string link;
        std::cin>>link;
        std::cout<<"nnProccessing...";
        loop3: //Keep getting the time until everything adds up...
        time_t s=time(0); //Getting ready for time
        tm t=*localtime(&s); //Getting time put into Variable t
        for(int i=0;i<n;i++){
            if (hour[i] != t.tm_hour){
                goto loop3;
            }
            if (min[i] != t.tm_min){
                goto loop3;
            }
            ShellExecute(NULL, "open", link.c_str(), NULL, NULL, SW_SHOWNORMAL);
        }

我希望它会在 n 中输入时打开确切的次数,但据我所知,当他执行 ShellExecute 命令时,它会回到循环的开始,检查时间并且时间仍然相同,所以他再次执行命令。这样,它就类似于那一分钟的无限循环。

那么,有没有办法解决这个问题?当他执行命令的那一刻,他只会执行一次然后继续前进?我希望你能理解我的解释。

你想以这种方式做吗?

time_t s;
tm t;
for(int i=0;i<n;){
    s=time(0); //Getting ready for time
    t=*localtime(&s); //Getting time put into Variable t
    if (hour[i] != t.tm_hour){
        continue;
    }
    if (min[i] != t.tm_min){
        continue;
    }
    ShellExecute(NULL, "open", link.c_str(), NULL, NULL, SW_SHOWNORMAL);
    i++;
}