C ++闹钟,循环问题

时间:2012-06-23 12:11:37

标签: c++ loops clock alarm

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

std::cout<<"Enter the link: ";
        std::string link;
        std::cin>>link;
        std::cout<<"\n\nProccessing...";

        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命令时,它会回到循环的开始,检查时间并且时间仍然是相同的,所以他再次执行命令。这样就可以得到类似于无限循环的东西。

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

1 个答案:

答案 0 :(得分:1)

你想这样做吗?

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++;
}