gpt4 book ai didi

c++ - 如何使用 iomanip 设置 std::string 的最大字段宽度?

转载 作者:搜寻专家 更新时间:2023-10-31 01:28:55 24 4
gpt4 key购买 nike

std::setw() 设置所有输出的最小字段宽度,std::setprecision() 能够影响 float ,但有没有办法为 std::string 设置最大字段宽度,以获得与以下 printf() 格式说明符相同的结果:%10.10s

我知道 boost::format 可能能够做到这一点,但我正在寻找一种仅符合 C++ 标准的解决方案,没有第三方软件。

最佳答案

C++ 流没有内置的方法来执行此操作。一种方法是使用 std::string_view 来获取您想要的切片

#include <iostream>
#include <string_view>

std::string_view print_max(std::string_view sv, std::size_t width)
{
return sv.substr(0, width);
}


int main()
{
std::cout << print_max("0123456789", 3) << "\n";
std::cout << print_max("0123456789", 5) << "\n";
std::cout << print_max("0123456789", 8) << "\n";
std::cout << print_max("0123456789", 20);
}

输出:

012
01234
01234567
0123456789

关于c++ - 如何使用 iomanip 设置 std::string 的最大字段宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com