无法在 C++ 中使用 setw 获得右对齐的数字三角形模式 space

Can't get Right aligned number triangle pattern giving space using setw in C++

我想要一个右对齐的数字模式,使用 setw 来给空格 当 setw 小于 no 时,空格消失。印刷数字或它使任何随机模式。 我的代码如下:

 #include <iostream>
 #include<iomanip>
 using namespace std;

 int main()
 {
   int space, n,i,j,k,l,m;
   cin>>n;

   for (k = n; k <=2*n-1; k++)
   {
        cout<<setw(k);
   }
   for(i=1;i<=n;i++){
     for(j=1;j<=i;j++){
        cout<<j;
     }
     cout<<endl;
   }
   return 0;
}

我得到的输出是 (n=5):

        1
12
123
1234
12345

我想要的输出是 (n=5):

    1
   12
  123
 1234
12345

不需要第一个 for 循环。

setw 设置下一个字段(setw 之后的字段)的字段长度。因此,如果下一个字段是空字符串,setw(x) 将只保留 x 个字符 space。此外,值 x 应等于 n - i (如果要打印的字符数为 1,则需要 (5 - 1) 即 4 spaces)

 #include <iostream>
 #include <iomanip>
 using namespace std;

 int main()
 {
   int n, i, j;
   cin >> n;

   for (i = 1; i <= n; i++) {
     cout << setw(n - i) << "";
     for (j = 1; j <= i; j++) {
        cout << j;
     }
     cout << endl;
   }
   return 0;
}