使用了std::setw(3),但是值的位数影响了格式,
怎么对称,,,,,,,,,
总不能判断值的位数来确定补白的位数,这样太麻烦了
for (size_t i = 1; i <= c.Rows; ++i)
{
for (size_t j = 1; j <= c.Rows; ++j)
{
switch (i-j)
{
case 1:case 0:case -1:
{
if (j == 1)
os << c.element[i - 1];
else
os << c.element[2*j+i-3];
}
break;
default: os << "0";
}
if (!(j % c.Rows))
os << std::endl;
else
os << std::setw(3);
}
}
1.
setw
只对<<
后的第一个操作数有效。2.设置的宽度是总宽度,并不是空格数。