我想编写一个代码以立即同步时钟并以时钟为目标,但是使用while时,该代码将打印与首次启动相同的时钟。
#include <iostream>
#include <string>
#include <sstream>
#include <ctime>
using namespace std;
int main(){
time_t now = time(0);
tm *ltm = localtime(&now);
do{
if(ltm->tm_sec > 60){
cout << "ok : " << ltm->tm_sec << endl;
break;
} else {
cout << "ok : " << ltm->tm_sec << endl;
continue;
}
}while (ltm->tm_sec <= 60);
}
我希望它现在将打印新的时钟,但是它与开始代码时间时的打印相同。
答案 0 :(得分:1)
您需要使用now
循环中的当前时间来更新ltm
和do-while
变量。
您可以如下更改代码:
#include <iostream>
#include <string>
#include <sstream>
#include <ctime>
using namespace std;
int main()
{
time_t now = time(0);
tm *ltm;
do
{
now = time(0);
ltm = localtime(&now);
if(ltm->tm_sec > 60)
{
cout << "ok : " << ltm->tm_sec << endl;
break;
}
else
{
cout << "ok : " << ltm->tm_sec << endl;
continue;
}
}while (ltm->tm_sec <= 60);
return 0;
}
我希望它能起作用!