C++ (11)常用代码

1、日志显示当前时间

#include <iostream>
#include <chrono>

int main()
{
    auto now = std::chrono::system_clock::now();
    std::time_t now_c = std::shrono::system_clock::to_time_t(now);
    char buffer [26];
    ctime_s(buffer, sizeof(buffer), &now_c);

    std::cout << "当前时间:" << buffer << std::endl;
}

2、Float或Double型数据,显示多位

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>

int main()
{
    double number = 123.1456789123456;
    std::cout << std::fixed << std::setprecision(15) << number << std::endl;
}

3、使用M_PI进行运算

M_PI的报错原因:没有加#define _USE_MATH_DEFINES,且需要加载<iostream>和<cmath>的上方

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>

int main()
{
    double pi = M_PI;
    std::cout << std::fixed << std::setprecision(15) << pi << std::endl;
}

4、输出经过的时间

#include <iostream>

int main()
{
    std::chrono::steady_clock::time_point startTime;
    std::chrono::duration <double> durationTime;
    startTime = std::chrono::steady_clock::now();

    durationTime = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::steady_clock::now () - startTime);

    std::cout << "经过时间: " << durationTime.count() << "秒" << std::endl;
}

时钟类型:system_clock、steady_clock、high_resolution_clock

  1. system_clock:这是一个系统级别的时钟,它表示自1970年1月1日UTC以来的时间。它的精度可能不够高,因为它受到系统时间调整的影响。例如,如果用户手动更改了系统时间,system_clock的值也会相应地更改。system_clock提供了now()函数,可以返回当前时间的时间点。

  2. steady_clock:这是一个稳定的时钟,它提供了一个单调递增的时间点序列。它的精度可能比system_clock更高,因为它不受系统时间调整的影响。steady_clock提供了now()函数,可以返回当前时间的时间点。

  3. high_resolution_clock更高,因为它使用了最佳可用的时钟源。high_resolution_clock提供了now()`函数,可以返回当前时间的时间点。

5、休眠直到指定时间点执行(sleep_until)

#include <iostream>
#include <chrono>

int main()
{
    auto start = std::chrono::steady_clock::now();
    int count = 0;
    while(true)
    {
        auto next = start + std::chrono::milliseconds(count++ * 100);
        double elaspsed = std::chrono::duration_cast<std::chrono::milliseconds>(next - start).count() / 1000.0;
        std::cout << "current time: << elapsed << std::endl;
        std::this_thread::sleep_until(next);  // 休眠直到指定时间点执行
        // sleep_for 休眠一段时间
    }
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值