愚稳 2022-10-26 13:36 采纳率: 0%
浏览 22

为什么printf函数在遇到scanf时可以直接将输出缓冲区内容直接打印,而不用满足“行缓冲”要求。

问题遇到的现象和发生背景

printf函数作为一个行缓冲输入,为什么可以在:

  1. 缓冲区没有填满
  2. 没有换行符
  3. 程序没有结束

以上3种情况都不满足下能打印粗来

用代码块功能插入代码,请勿粘贴截图

c
int main()
{
int num;
printf("请输入学号");
scanf("%d", &num);

return 0;

}

运行结果及报错内容

img

我的解答思路和尝试过的方法

c
int main()
{

printf("这是个测试");
sleep(10);

return 0;

}

这种情况就不会输出,因为缓冲区没有满足以上3种情况

  • 写回答

1条回答 默认 最新

  • 「已注销」 2022-10-26 14:44
    关注

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月26日

悬赏问题

  • ¥15 暴雪战网api相关问题
  • ¥15 而使用UE5引擎的 工具选项里 打开c++ visual studio 就会有部分显示加载失败 如图 加载失败的这张图 请问是什么原因
  • ¥15 mysql 对多个字段模糊查询,返回第一个匹配的字段
  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。