打印两个字符串
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);
我想在控制台打印两个字符串
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);