使用fmt库将vector<int>转换为字符串

17

如何从输出中删除 {}?

#include <iostream>
#include <vector>
#include <fmt/format.h>
#include <fmt/ranges.h>
int main () {
    std::vector<int> v = {1,2,3};
    std::string s = fmt::format("{}", v);
    std::cout << s << '\n'; // output : {1, 2, 3}
    return 0;
}

如何在上述代码的输出中删除 '{' 和 '}' 并仅打印:1, 2, 3


听起来像是一个XY问题 - CinCout
2
std::cout << s.substr(1, s.size()-2) << '\n'; - Remy Lebeau
1
我不熟悉 fmt,但是看起来前缀 { 和后缀 }ranges.h 头文件中是硬编码的。链接 - Daniel Langr
@CinCout:这不可能是一个XY问题。"XY问题"的关键在于"Y"是一个奇怪或不寻常的问题。这个问题并没有什么奇怪或不寻常的地方。 - AndyMcoy
1个回答

44

我引用了fmt API

#include <fmt/ranges.h>

std::vector<int> v = {1, 2, 3};
fmt::print("{}", fmt::join(v, ", "));
// Output: "1, 2, 3"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接