下面的代码应该打印从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;
}