在C行中暂停打印在同一行中

| 我想让程序打印一些内容,然后等待几秒钟,然后在同一行中打印其他内容。我尝试将其编写为:
printf (\"bla bla bla\");
sleep (2);
printf (\"yada yada yada\\n\");
但是在输出中,我要等待2秒,然后将整行打印为一行。当我尝试将输出放在不同的行中时,它确实会暂停打印。 如何使其在同一行中暂停打印? *在Linux上工作     
已邀请:
printf (\"bla bla bla\");
fflush(stdout);
sleep (2);
printf (\"yada yada yada\\n\");
fflush强制将stdout内部缓冲区刷新到屏幕。     
stdout
默认情况下是行缓冲流,这意味着您需要显式刷新它。它在换行符上隐式刷新。 C99标准强制要求这种行为。 这意味着在您的第一个“ 3”中,文本将添加到内部缓冲区中。这样做是为了提高效率,例如打印大量小文本碎片时。 您的第二个“ 3”包含换行符,这将导致流被刷新。如果需要,可以通过
fflush(stdout);
显式刷新
stdout
。 作为替代方案,您也可以使用无缓冲stderr,如ѭ7中所示,但顾名思义,它用于错误和警告。 另请参见SO问题,除非在格式字符串中包含换行符,否则在调用后为什么printf不会刷新?     

要回复问题请先登录注册