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