C: printf 没有立即输出

标签 c

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

我的代码:

It's supposed to ask for a user prompt to enter a value, the print that value with a different message

但是,每当我尝试运行代码时,用户提示都不会出现,当我输入“3”作为答案时,就会发生这种情况enter image description here

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

最佳答案

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

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

将对 printf 的调用更改为:

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

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

printf("请输入半径:") fflush(标准输出)

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

关于C: printf 没有立即输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60215078/

相关文章:

c - RPC 规范中结构内二维数组的定义不起作用

c - C 中的双指针常量正确性警告

python - 与 PyOpenCL 的结构对齐

c - 在结构定义中的 ' ' 标记之前应为 '='

c - 如何在 C 中修剪字符串中的空格?

c++ - 包含线程局部变量的函数是可重入的吗?

c - Win32 ListView常用控件重画问题

c - 这两种数组声明有什么区别?

c - GDB [[Inferior 1 (process 2710) exited with code 06]] 奇怪的输出

c++ - HLSL 和光照问题