我正在尝试制作一个可以设置多次的闹钟。这是代码
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命令时,它会回到循环的开始,检查时间并且时间仍然是相同的,所以他再次执行命令。这样就可以得到类似于无限循环的东西。
那么,有没有办法解决这个问题?他执行命令的那一刻他只会一次然后继续前进?我希望你能理解我的解释。
答案 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++;
}