打印两个字符串

Print two strings

我想在控制台打印两个字符串

int k = 3;
for (int i = 0; i < k; i++)
{
    printf("\ra: %d\n\rb: %d", i*2, i*3);
}

我想得到这个结果:

a: 4
b: 6

但我得到:

a: 0
a: 2
a: 4
b: 6

你可以在 for 中做一个 if ,比如:

if (i * 2 == 4)
    printf ...

如果将循环更改为

for (int i = 2; i < k; i++)

这将打印您要求的结果。

a: 4
b: 6

你得到那个输出的原因是你在 a 之前只有一个 \r,但是在 a 和 b 之间有 \n\r

printf("\ra: %d\n\rb: %d", i*2, i*3);

每个循环,光标 returns 到 b 所在行的行首,并覆盖它,并为 a 设置新值:

1st    2nd     3rd run
a=0    a=0    a=0
b=0    a=2    a=2 
       b=3    a=4
              b=6

因为速度快,只能看到最后一个。确实不清楚你想做什么,但是如果你只需要最后运行的输出,你可以在循环后写printf:

for (int i = 0; i < k; i++)
{
...
}
printf("\r\na: %d\n\rb: %d", i*2, i*3);