CPP Setfill()在for循环的第二步和其他步骤中重复自身 一个C++的简单乘法表 int main() { int i, j; i = j = 1; for (i; i < 10; i++) { for (j = 1; j < 10; j++) cout << setw(3) << i*j; cout << endl << setw(3) << setfill('x'); } }

CPP Setfill()在for循环的第二步和其他步骤中重复自身 一个C++的简单乘法表 int main() { int i, j; i = j = 1; for (i; i < 10; i++) { for (j = 1; j < 10; j++) cout << setw(3) << i*j; cout << endl << setw(3) << setfill('x'); } },c++,C++,但我期待的是: 1 2 3 4 5 6 7 8 9 xx2 4 6 8 10 12 14 16 18 xx3 6 9 12 15 18 21 24 27 xx4 8 12 16 20 24 28 32 36 xx5 10 15 20 25 30 35 40 45 xx6 12 18 24 30 36 42 48 54 xx7 14 21 28 35 42 49 56 63 xx8 16 24 32 40 48 56 64 72 xx9 18 27 36 45 54

但我期待的是:

  1  2  3  4  5  6  7  8  9
xx2  4  6  8 10 12 14 16 18
xx3  6  9 12 15 18 21 24 27
xx4  8 12 16 20 24 28 32 36
xx5 10 15 20 25 30 35 40 45
xx6 12 18 24 30 36 42 48 54
xx7 14 21 28 35 42 49 56 63
xx8 16 24 32 40 48 56 64 72
xx9 18 27 36 45 54 63 72 81
我错过了什么?谢谢。

std::setfill
:它将更改
ostream
的状态,直到恢复

如果在打印第一个数字后将其还原,则将获得预期输出:

for (i; i < 10; i++) {
    for (j = 1; j < 10; j++)
        cout << setw(3) << i*j << setfill(' ');
    cout << endl << setw(3) << setfill('x');
}   
(i;i<10;i++)的
{
对于(j=1;j<10;j++)
库特
for (i; i < 10; i++) {
    for (j = 1; j < 10; j++)
        cout << setw(3) << i*j << setfill(' ');
    cout << endl << setw(3) << setfill('x');
}