使用getchar()时,为什么首先需要清除回车按键的缓冲区?

金切斯

我是编程和学习C的新手:

printf("What are your two initials?\n");
firstInit= getchar();
lastInit = getchar();

=======================================

printf("What are your two initials?\n");
firstInit= getchar();
lastInit = getchar();
getchar();

我知道在代码的第一部分中,如果我输入ZK作为缩写,则Z将放置在firstInit中,而由enter键表示的'\ n \将被放置在lastInit中。剩余的K将存储在后续的getchar()中。但是,在代码的第二部分中,我正在阅读的书说,如果我输入ZK作为缩写,则firstInit将保留Z,而lastInit将保留K。我只是认为需要清除缓冲区每次按Enter键之后。

抱歉,如果不允许发布该帖子,请在需要时将其删除。

吊床

这里有两个起作用的缓冲区:一个是键盘缓冲区,另一个是C标准缓冲区(输入缓冲区)。
当您按下键盘按钮时,字符将存储在键盘缓冲区中。因此,当您ZK 一起键入时,它仅存储在键盘缓冲区中。上按压Enter键时,它将进到与一个或多个字符C标准缓冲液\n(在按下生成Enter键)。
getchar逐字符读取输入的字符。在第一个代码中,第一个getchar将读ZfirstInit,第二个getchar将读KlastInit现在,仅\n保留在输入缓冲区中。
第二个代码也是如此,只不过\n第三个代码会被读取getchar并丢弃。

如果Enter在每个字符Z之后按键K,则必须在读取要存储K在其中的第一个字符后清除输入缓冲区lastInit

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么时候需要清除scanf缓冲区?

来自分类Dev

为什么WebGL“清除”吸引前端缓冲区?

来自分类Dev

为什么使用EOF检查是否清除了stdin缓冲区

来自分类Dev

为什么在使用 SPI 时全局缓冲区变量产生的结果与局部缓冲区变量不同?

来自分类Dev

为什么在LZW压缩中压缩缓冲区需要大于输入缓冲区?

来自分类Dev

为什么刚创建输出缓冲区时需要刷新它?

来自分类Dev

当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

来自分类Dev

当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

来自分类Dev

getch()和getchar()清除输入缓冲区的用法的区别?

来自分类Dev

为什么在每次使用printf时都不必刷新输出缓冲区?

来自分类Dev

为什么MySQL查询使用连接缓冲区?

来自分类Dev

为什么在Java中使用协议缓冲区

来自分类Dev

当缓冲区不包含任何项目时,为什么Rx缓冲区连续执行方法?

来自分类Dev

使用glClear清除帧缓冲区与简单地绘制矩形以清除帧缓冲区之间有什么区别?

来自分类Dev

清除键盘缓冲区

来自分类Dev

使用立方体贴图时的OpenGL清除缓冲区

来自分类Dev

为什么在调用glDrawArrays之前不需要绑定顶点缓冲区对象?

来自分类Dev

为什么struct缓冲区不需要初始化

来自分类Dev

为什么需要在NSInvocation-getArgument:atIndex:上保留__unsafe_unretain缓冲区?

来自分类Dev

为什么单个深度缓冲区足以满足此vulkan swapchain渲染循环的需要?

来自分类Dev

为什么在调用glDrawArrays之前不需要绑定顶点缓冲区对象?

来自分类Dev

与缓冲区,EOF和getchar混淆

来自分类Dev

为什么在输入数据包时需要将skb_buffer跳过20个字节才能读取传输缓冲区?

来自分类Dev

为什么在输入数据包时需要将skb_buffer跳过20个字节才能读取传输缓冲区?

来自分类Dev

为什么在渲染过程中我们必须清除OpenGL中的深度缓冲区?

来自分类Dev

当系统内存大于8GB时,为什么Linux禁用磁盘写缓冲区?

来自分类Dev

为什么逐行读取文件时缓冲区大小不是总是4096的整数倍?

来自分类Dev

当Vec不工作时,为什么[u8]用作UdpSocket的缓冲区?

来自分类Dev

为什么从颜色缓冲区而不是位置缓冲区获取顶点位置?

Related 相关文章

  1. 1

    什么时候需要清除scanf缓冲区?

  2. 2

    为什么WebGL“清除”吸引前端缓冲区?

  3. 3

    为什么使用EOF检查是否清除了stdin缓冲区

  4. 4

    为什么在使用 SPI 时全局缓冲区变量产生的结果与局部缓冲区变量不同?

  5. 5

    为什么在LZW压缩中压缩缓冲区需要大于输入缓冲区?

  6. 6

    为什么刚创建输出缓冲区时需要刷新它?

  7. 7

    当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

  8. 8

    当缓冲区未满时,为什么字节缓冲区会给出缓冲区溢出异常

  9. 9

    getch()和getchar()清除输入缓冲区的用法的区别?

  10. 10

    为什么在每次使用printf时都不必刷新输出缓冲区?

  11. 11

    为什么MySQL查询使用连接缓冲区?

  12. 12

    为什么在Java中使用协议缓冲区

  13. 13

    当缓冲区不包含任何项目时,为什么Rx缓冲区连续执行方法?

  14. 14

    使用glClear清除帧缓冲区与简单地绘制矩形以清除帧缓冲区之间有什么区别?

  15. 15

    清除键盘缓冲区

  16. 16

    使用立方体贴图时的OpenGL清除缓冲区

  17. 17

    为什么在调用glDrawArrays之前不需要绑定顶点缓冲区对象?

  18. 18

    为什么struct缓冲区不需要初始化

  19. 19

    为什么需要在NSInvocation-getArgument:atIndex:上保留__unsafe_unretain缓冲区?

  20. 20

    为什么单个深度缓冲区足以满足此vulkan swapchain渲染循环的需要?

  21. 21

    为什么在调用glDrawArrays之前不需要绑定顶点缓冲区对象?

  22. 22

    与缓冲区,EOF和getchar混淆

  23. 23

    为什么在输入数据包时需要将skb_buffer跳过20个字节才能读取传输缓冲区?

  24. 24

    为什么在输入数据包时需要将skb_buffer跳过20个字节才能读取传输缓冲区?

  25. 25

    为什么在渲染过程中我们必须清除OpenGL中的深度缓冲区?

  26. 26

    当系统内存大于8GB时,为什么Linux禁用磁盘写缓冲区?

  27. 27

    为什么逐行读取文件时缓冲区大小不是总是4096的整数倍?

  28. 28

    当Vec不工作时,为什么[u8]用作UdpSocket的缓冲区?

  29. 29

    为什么从颜色缓冲区而不是位置缓冲区获取顶点位置?

热门标签

归档