C语言 为什么r不能在mac vscode上给出与windows vscode相同的结果?



下面的代码应该打印从0-10传递的秒数,并且在windows vscode上正常工作,但是在mac的vscode上输出需要10秒,但只输出

10秒已过

但是,如果我将r更改为n,代码可以工作,但我不想每次都打印新行。

0秒已过

1秒过去了

等等……

我已经搜索了一段时间关于这个,我不知道是什么问题…

代码:

for(int i = 0;i<=10;i++)
{
printf("r %d second has passed",i);
sleep(1);
}

您正在遭受缓冲。通过禁用标准输出缓冲,文本将在调用printf时立即输出。下面是代码:

#include<stdio.h>
#include<unistd.h>

int main() {
setbuf(stdout, NULL);
for(int i = 0;i<=10;i++)
{
printf("r %d second has passed",i);
sleep(1);
}
return 0;
}

最新更新