c - C: printf 不立即输出
问题描述
我今天通过 YouTube 开始学习 C,我从教程中复制了代码进行测试,得到了完全不同的结果。
我的代码:
但是,每当我尝试运行代码时,用户提示都不会出现,当我输入“3”作为答案时,就会发生这种情况
链接到带有时间戳的 YouTuber 代码。任何帮助将不胜感激 :)
解决方案
由于您习惯于scanf
等待用户输入,因此它将一直等到您向程序提供一些输入。
printf
不会立即将所有字符都放到屏幕上,它会缓冲它的输出。只要您的程序没有终止,或者您没有调用flush(stdout)
刷新缓冲区,或者您没有将换行符放在\n
printf 的第一个参数的末尾,输出就不会打印到屏幕上。
将您的呼叫更改printf
为:
printf("Enter radius\n: ")
使用换行符以便立即打印字符串并刷新缓冲区
或者如果您不想使用换行符
printf("Enter radius: ")
fflush(stdout)
调用 fflush(stdout) 手动刷新输出缓冲区。
推荐阅读
- java - JsonSubtype 属性值与抽象类变量名相同
- python - 替换列表类型的列的值
- javascript - Gatsby 构建错误 95313 - 项目未构建
- excel - 如何让 Send To 包含来自工作表且被证明为真实的电子邮件
- apache-spark - 从 spark 分发存档下载通常很慢吗?
- python - 在 django restful 框架中测试上传图像时出现 base64 编码错误
- python - 计算错误并循环继续
- discord - 想要一个检测自定义状态并赋予此人不和谐角色的代码
- c++ - 模板类型是否有等效的“typename”?
- python - 用熊猫(python)计算数据框中的标记词