3

我知道我可以限制特定字符串参数的大小,但是 IDK 如何为整个输出做到这一点。换句话说,这个程序可以只调用一次格式化来编写吗?

#include <string>
#include <iostream>
#include <fmt/format.h>

int LOG_MAX_MESSAGE_LENGTH = 11;

void f(const char* p) {
    std::cout << fmt::format("{:.{}}", fmt::format("ABI is {}", p),
                             LOG_MAX_MESSAGE_LENGTH)
              << std::endl;
}

int main() {
    f("hellooooo");
}
4

1 回答 1

4

还有format_to_n,它需要一个输出迭代器和一个大小(然后是通常的格式字符串和参数)。

format_to_n(
    std::ostream_iterator(std::cout), LOG_MAX_MESSAGE_LENGTH,
    "ABI is {}", p);
于 2020-02-26T14:34:30.693 回答