除了最常见的(格式)函数外,C++20 还附带了 format_to_n,它接受输出迭代器和计数。
我正在寻找的是确保万一我的空间用完我的字符串仍然为零终止的方法。例如,我希望以下程序输出 4 而不是 42。
#include<string>
#include<iostream>
#define FMT_HEADER_ONLY
#include <fmt/format.h>
void f(char* in){
fmt::format_to_n(in, 2,"{}{}", 42,'\0');
std::cout << in;
}
int main(){
char arr[]= "ABI";
f(arr);
}
如果我不手动比较我提供给函数的写入字符数和最大长度,这是否可能?
如果您想知道为什么我使用 '\0' 作为参数:
我不知道如何将终止字符放入格式字符串中。
注意:我知道对于一个参数,我可以用 : 指定 max len。但我想要一个适用于多个参数的解决方案。