{fmt} é uma biblioteca de formatação de código aberto que oferece uma alternativa rápida e segura para C stdio e C++ iostreams.
Recursos
std::format
Dependências:
Depois basta clonar, compilar e instalar com os comandos abaixo:
git clone https://github.com/fmtlib/fmt
cd fmt
cmake -B build .
cd build
make
sudo make install
Uso básico:
#include <fmt/core.h>
int main() {
fmt::print("A resposta é {}.\n", 42);
}
Para compilar use a flag -lfmt
:
g++ -I/usr/local/include/benchmark/ -lfmt main.cpp
Atribuindo saída formatada à uma string:
#include <fmt/core.h>
int main() {
std::string s = fmt::format("A resposta é {}.\n", 42);
fmt::print("{}", s);
}
Utilizando argumentos posicionais:
#include <fmt/core.h>
int main() {
std::string s = fmt::format("Eu {1} amar {0} o {2}!\n", "demais", "\u2764", "C++");
fmt::print("{}", s);
}
Imprimindo informações cronológicas:
#include <fmt/chrono.h>
int main() {
using namespace std::literals::chrono_literals;
fmt::print("Saída padrão: {} {}\n", 42s, 100ms);
fmt::print("Saída formatada: {:%H:%M:%S}\n", 3h + 15min + 30s);
}
Saída com cores:
#include <fmt/color.h>
int main() {
fmt::print(fg(fmt::color::crimson) | fmt::emphasis::bold,
"Olá, {}!\n", "Mundo");
}
Para mais exemplos consulte a documentação e o repositório .