你好,我想在 while 循环中获取一次输出
While(1){
if( current->tm_hour == 10 && current->tm_min == 0 ){
Start_Function();
std::cout << "Started" << std::endl;
}
if( current->tm_hour == 12 && current->tm_min == 0 ){
End_Function();
std::cout << "Ended" << std::endl;
}
Sleep(5000);
}
我使用 sleep 每 5 秒刷新一次
所以我想要当前的小时和分钟 = 10 和 00
它给我输出 Started 并且它只调用一次该函数并且它继续刷新
最佳答案
怎么样:
bool start_called = false, end_called = false;
While(1){
if( current->tm_hour == 10 && current->tm_min == 0 && !start_called ){
Start_Function();
std::cout << "Started" << std::endl;
start_called = true;
} else
start_called = false;
if( current->tm_hour == 12 && current->tm_min == 0 && !end_called ){
End_Function();
std::cout << "Ended" << std::endl;
end_called = true;
} else
end_called = false;
Sleep(5000);
}
你可以用仿函数做得更好,但那更高级一些。
关于c++在while循环中获得一次输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13505172/