0
点赞
收藏
分享

微信扫一扫

java使用esayExcel

左手梦圆 04-16 17:30 阅读 1

fmt项目快速上手指南

1. cmake环境配置

include(FetchContent)
FetchContent_Declare(
    fmt
    GIT_REPOSITORY https://github.com/fmtlib/fmt
    GIT_TAG 10.0.0
    GIT_SHALLOW TRUE)
# 1. 下载fmt库
FetchContent_MakeAvailable(fmt)

add_executable(fmt_guide main.cpp)
# 2. 链接fmt库
target_link_libraries(fmt_guide PRIVATE fmt::fmt)

2. 快速上手

  • c++的文本可视化,与python相比,还是过于麻烦了。
  • c++ 20标准则对此进行了改进, 实现了类似python的效果,大家具体可以参考: c++20 format官网文档

如果不是c++ 20,还想要简化字符串的格式化,和输入输出流的简化。那就可以使用我们今天要介绍的开源项目,fmt,

  • 该项目的文档位于: fmt 官网文档

  • 该项目代码开源与GitHub: fmt-gtihub

  • 格式API在精神上与C print函数家族相似,但比通用标准库实现更安全、更简单且速度快好几倍。格式字符串语法类似于Python中str.form使用的语法。

  • 该项目总体API比较简洁,通过下面的demo,就可以快速上手!

3. 使用dmeo


#include <fmt/color.h>
#include <fmt/core.h>
#include <fmt/os.h>
#include <fmt/ranges.h>
#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char const *argv[]) {
  // 1. 格式化到字符串
  std::string s = fmt::format("The answer is {}.\n", 42);
  cout << s << endl;

  // 2. 格式化输出
  fmt::print("fuck you {} \n", "dd");
  fmt::print(
      "print vector: {} \n",
      std::vector{1, 2, 3, 4,
                  5}); // 打印STL容器需要包含头文件 #include <fmt/ranges.h>

  // 3. 带颜色输出
  // 彩色输出需要包含该头文件 <fmt/color.h>
  fmt::print(fg(fmt::color::green), "success\n");
  fmt::print(fg(fmt::color::orange) | fmt::emphasis::underline, "warning\n");
  fmt::print(fg(fmt::color::red) | fmt::emphasis::bold |
                 fmt::emphasis::underline,
             "danger\n");
  ;

  // 4. 输出到文件 需要包含头文件 #include <fmt/os.h>
  auto fout = fmt::output_file("readme.txt");
  fout.print("{} is an open-source formatting library providing a fast and "
             "safe alternative to C stdio and C++ iostreams.\n",
             "fmt");
  return 0;
}

实际输出结果:
在这里插入图片描述

举报

相关推荐

0 条评论