C++ C++;setw和setfill可以填充字符串的末尾吗?
有没有办法让C++ C++;setw和setfill可以填充字符串的末尾吗?,c++,formatting,setw,C++,Formatting,Setw,有没有办法让setw和setfill填充字符串的末尾而不是前面 我有一种情况,我正在打印这样的东西 CONSTANT TEXT variablesizeName1 .....:number1 CONSTANT TEXT varsizeName2 ..........:number2 我想在末尾添加一个可变数量的。 “常量文本变量sizeName”这样我就可以在屏幕上排列“:number” 注意:我有一个数组“variablesizeName#”,所以我知道最广泛的情况 或 我应该像这样
setw
和setfill
填充字符串的末尾而不是前面
我有一种情况,我正在打印这样的东西
CONSTANT TEXT variablesizeName1 .....:number1
CONSTANT TEXT varsizeName2 ..........:number2
我想在末尾添加一个可变数量的。
“常量文本变量sizeName”
这样我就可以在屏幕上排列“:number”
注意:我有一个数组“variablesizeName#”
,所以我知道最广泛的情况
或
我应该像这样手动设置setw
吗
for(int x=0;x
对于您的具体情况,类似这样的操作可以:
#include <iostream>
#include <iomanip>
#include <string>
const char* C_TEXT = "Constant text ";
const size_t MAXWIDTH = 10;
void print(const std::string& var_text, int num)
{
std::cout << C_TEXT
// align output to left, fill goes to right
<< std::left << std::setw(MAXWIDTH) << std::setfill('.')
<< var_text << ": " << num << '\n';
}
int main()
{
print("1234567890", 42);
print("12345", 101);
}
编辑:
如链接中所述,std::internal
仅适用于整数、浮点和货币输出。例如,对于负整数,它将在负号和最左边的数字之间插入填充字符
这:
#包括
#包括
int main()
{
标准::cout
比如:
cout << left << setw(MAXWIDTH) << setfill('.') << temp << ':' << Number << endl;
derp..........................:234
herpderpborp..................:12345678
真棒。作为你回答的后续问题,std::internal
是如何工作的?
-0000000001
-0000000123
#include <iostream>
#include <iomanip>
int main()
{
std::cout
<< std::setiosflags(std::ios::left) // left align this section
<< std::setw(30) // within a max of 30 characters
<< std::setfill('.') // fill with .
<< "Hello World!"
<< "\n";
}
//Output:
Hello World!..................
cout << left << setw(MAXWIDTH) << setfill('.') << temp << ':' << Number << endl;
derp..........................:234
herpderpborp..................:12345678