调整控制台上数字之间的距离

时间:2013-05-24 10:21:15

标签: c++

我制作了一个程序来创建pascal的三角形。程序将行数作为输入,并在控制台上显示三角形。我已经使用setw()函数来设置数字之间的距离。它是单位数字,但是当数字大于10时,宽度没有正确调整,现在我已经:

if(P<10){
   std::cout << P ;
   std::cout <<std::setw(2);
}

if(P>=10){
   std::cout<<std::setw(3) << P ;
   std::cout<<std::setw(2);
}

这是控制台的输出:

                      1
                     1 1
                    1 2 1
                   1 3 3 1
                  1 4 6 4 1
                 1 5 10 10 5 1
                1 6 15 20 15 6 1
               1 7 21 35 35 21 7 1
              1 8 28 56 70 56 28 8 1
             1 9 36 84126126 84 36 9 110

我希望它看起来像一个正确的三角形,有人可以帮助我吗???

1 个答案:

答案 0 :(得分:1)

如果您阅读例如this reference of std::setw你会看到

  

如果调用以下任何函数,则stream的width属性将重置为零(表示“未指定”)

然后继续列出所有输出操作符。

这意味着当你做

std::cout <<std::setw(2);

仅为 next 输出操作设置宽度。如果在此之后进行任何类型的输出,宽度将重置为零。