我想在控制台中打印两个字符串
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
答案 0 :(得分:1)
如果将循环更改为
for (int i = 2; i < k; i++)
这将打印您要求的结果。
a: 4
b: 6
答案 1 :(得分:1)
您获得该输出的原因是您在a之前只有一个\r
,但在a和b之间只有\n\r
:
printf("\ra: %d\n\rb: %d", i*2, i*3);
每个循环,光标返回到b所在的行的开头,然后写入OVER,并带有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);
答案 2 :(得分:0)
你可以在里面做一个if:
if (i * 2 == 4)
printf ...