我制作了一个程序来创建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
我希望它看起来像一个正确的三角形,有人可以帮助我吗???
答案 0 :(得分:1)
如果您阅读例如this reference of std::setw
你会看到
如果调用以下任何函数,则stream的width属性将重置为零(表示“未指定”)
然后继续列出所有输出操作符。
这意味着当你做
时std::cout <<std::setw(2);
仅为 next 输出操作设置宽度。如果在此之后进行任何类型的输出,宽度将重置为零。