首页 > 解决方案 > C: printf 不立即输出

问题描述

我今天通过 YouTube 开始学习 C,我从教程中复制了代码进行测试,得到了完全不同的结果。

我的代码:

它应该要求用户提示输入一个值,并使用不同的消息打印该值

但是,每当我尝试运行代码时,用户提示都不会出现,当我输入“3”作为答案时,就会发生这种情况在此处输入图像描述

链接到带有时间戳的 YouTuber 代码。任何帮助将不胜感激 :)

标签: c

解决方案


由于您习惯于scanf等待用户输入,因此它将一直等到您向程序提供一些输入。

printf不会立即将所有字符都放到屏幕上,它会缓冲它的输出。只要您的程序没有终止,或者您没有调用flush(stdout) 刷新缓冲区,或者您没有将换行符放在\nprintf 的第一个参数的末尾,输出就不会打印到屏幕上。

将您的呼叫更改printf为:

printf("Enter radius\n: ") 使用换行符以便立即打印字符串并刷新缓冲区

或者如果您不想使用换行符

printf("Enter radius: ") fflush(stdout)

调用 fflush(stdout) 手动刷新输出缓冲区。


推荐阅读