C sleep()未正确延迟printf()输出
我遇到了C sleep()未正确延迟printf()输出,c,sleep,C,Sleep,我遇到了sleep()函数不工作的问题。例如: #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]){ printf("\nHello!"); sleep(1); printf("\nBye!"); sleep(1); return 0; } #包括 #包括 int main(int argc,char*argv[]){ pr
sleep()
函数不工作的问题。例如:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[]){
printf("\nHello!");
sleep(1);
printf("\nBye!");
sleep(1);
return 0;
}
#包括
#包括
int main(int argc,char*argv[]){
printf(“\nHello!”);
睡眠(1);
printf(“\nBye!”);
睡眠(1);
返回0;
}
即使像这样简单的程序也不起作用。它将休眠2秒钟,然后说“你好!再见!”并结束程序。如果有任何人有任何想法,他们将受到赞赏 到标准输出的输出被缓冲,直到换行。 [printf前面的换行符应该刷新,但是在强制换行符或显式刷新之前,以下字符将被缓冲{re:greg h}] 要刷新stdout,请调用
fflush(stdout)
到标准输出的输出被缓冲,直到换行。 [printf前面的换行符应该刷新,但是在强制换行符或显式刷新之前,以下字符将被缓冲{re:greg h}] 要刷新stdout,请调用
fflush(stdout)
默认情况下,
printf
输出在打印\n
字符时刷新(实际发送到终端)。因此,您可以按如下方式使代码正常工作:
printf("Hello!\n");
sleep(1);
printf("Bye!\n");
sleep(1);
在本例中,我已将换行符
\n
移动到您正在打印的字符串的末尾,而不是开始处。默认情况下,打印\n
字符时,printf
输出被刷新(实际发送到终端)。因此,您可以按如下方式使代码正常工作:
printf("Hello!\n");
sleep(1);
printf("Bye!\n");
sleep(1);
在本例中,我已将换行符
\n
移到您正在打印的字符串的末尾,而不是开头。您能举个例子吗?我14岁,正在学习语言抱歉,如果我有点慢,printf
语句确实包含换行符,只是在一个不寻常的地方…@Greg Hewgill printf不包含换行符。。你必须放一个转义字符,但是没有转义字符它不会自动刷新。@James:不,真的,问题代码的输出开头有新行。哈哈,触摸。。。换行符将强制刷新,但以下字符将被缓冲。我更新了我的答案,加入了一个例子,我会改变我的措辞,你能举个例子吗?我14岁,正在学习语言抱歉,如果我有点慢,printf
语句确实包含换行符,只是在一个不寻常的地方…@Greg Hewgill printf不包含换行符。。你必须放一个转义字符,但是没有转义字符它不会自动刷新。@James:不,真的,问题代码的输出开头有新行。哈哈,触摸。。。换行符将强制刷新,但以下字符将被缓冲。我更新了我的答案,加入了一个例子,我将修改我的措辞。这是一个副本。是的,这是一个副本。好的,非常感谢你解决了我的问题!好的,非常感谢你解决了我的问题!