在打印出字符串后设置填充
C++: set fill after printing out a string
我正在尝试cout
一个字符串,使输出的总长度为,例如15。
例如,如果字符串是"Tom",那么我希望cout
后面有12个空格。我知道如何使用setfill
和setw
有前导空格,但有一个内置的方式填充空格后?或者唯一的方法就是得到字符串的长度然后在字符串的末尾加上一些空格?
谢谢!
我想你正在寻找std::left
输出修饰符。
#include <iomanip> // std::setw
#include <ios> // std::left
#include <iostream> // std::cout
#include <string> // std::string
int
main()
{
const std::string words[] = {
"Tom",
"Ferdinand",
"And finally some longer string",
};
for (const auto& w : words)
std::cout << std::setw(12) << std::left << w << "|n";
}
输出:Tom |
Ferdinand |
And finally some longer string|
使用标头ios
中定义的IO操纵符std::left
我正在尝试计算一个字符串,以便输出的总长度为,说15。例如,如果字符串是"Tom",那么我需要12个空格后cout。
我已经用了下面的…
// ...
{
std::stringstream ss1;
ss1 << "Tom"; // insert
const int NameFieldSize = 15;
while (ss1.str().size() < NameFieldSize) ss << " ";
// ... insert the rest of the info to ss1
// now write the full string to cout (or file)
std::cout << ss1.str() << std::endl;
}
// ...
stringstream的工作原理就像cout,所有的格式化控件,但是因为它是基于ram的,所以要快得多。
请注意,当ss1已经超过NameFieldSize时,代码将检测并可能'修复'输出格式。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 将十六进制值设置为用于填充的字符变量时出现问题
- 如何使用同时设置计数和填充数组的函数
- 如何调用 GetAltMonthNames 来填充外部区域设置月份字符串的安全数组
- 在编译时填充标准::设置
- 使用强制转换和设置填充将 int 值更改为时间
- 101 Qt 样式表边距填充黑客指南在C++。设置填充不起作用
- C++可以设置和填充字符串的末尾
- C++-填充派生类数据成员,同时设置基类属性值
- 设置填充样式和泛滥填充使用
- 如何将可变大小的静态数组设置为用 0 填充
- OpenCV:设置图像边界,不带填充
- 在打印出字符串后设置填充
- 如何设置一个由mxSetData填充的mxArray的classID
- 我怎么能设置填充样式的主窗口在QT
- 如何使用 iomanip 的设置、设置填充和左/右?设置填充不会停止其输出