c - getchar() 在 C 中给出输出

标签 c io getchar

这个程序应该做什么,

#include<stdio.h>
main()
{   
  getchar();
}

我希望它会显示一个空白屏幕,直到我按下键盘上的任何字符。但是它的作用很奇怪。它显示我按下的任何内容。在我按下 Enter 之前,它永远不会终止。

据我所知,getchar() 应该只读取一个字符。它不应输出任何内容。

  • Why is it printing every character that I input?

编辑:

为什么 getchar() 在读取一个字符后不停止,例如在这段代码中:

   #include <stdio.h>  

   main()  

   {  

    getchar();  

   printf("Done");  


  }  

程序应该在读取一个字符后打印 Done。

最佳答案

getchar() 完成之前,您的程序不会终止。 getchar() 在输入缓冲区被填充之前不会完成。在您按下“Enter”之前,不会填充输入缓冲区。

您看到的字符就是您输入的字符。这是默认的终端驱动行为,而不是由您的程序驱动。

关于c - getchar() 在 C 中给出输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297811/

相关文章:

c - C- 中的结构在运行时添加属性?

io - 在 Rust 中是否有丢弃输入的标准方法?

javascript - Stream.end() 是同步的吗?

c - 在 C 中使用 getchar();每次我使用它时它都会移动到下一个字符吗?包括在分配操作中?

c - K&R 中的 getline 函数定义

c - 回归小说中的人物

c++ - C/C++ ASCII 字符到 HEX BYTE 数组

c - 定点数学锐化滤波器

c - 从文件中读取,输出只显示一行

c++ - omxplayer中复杂的getchar()操作