c - getch() 在 C 中究竟做了什么?

标签 c turbo-c getch

我认为(到目前为止)getch() 函数从输入缓冲区(或键盘,简单来说)读取一个字符。但我不得不和我的实验室导师争论。他们说 getch() 的唯一工作是保持程序执行。我知道 getch() 可以那样使用。但我只想知道发明它的真正目的是什么?或者,它很少用于获取单字符输入吗?

最佳答案

getch 用于“从与当前窗口关联的终端读取单字节字符”,如 specified by POSIX .这是它的主要功能。它可以配置为非阻塞的(例如,如果没有输入,该函数会立即返回),因此您的实验室讲师说它的唯一目的是暂停程序执行是错误的。

如果您谈论的是 Turbo-C 实现的 getch() 那么我不确定阻塞语义,但如果它的主要目的是暂停程序执行,该函数将 < em>肯定被命名为更合适的名称,例如 pause()waitkb() 或类似名称。

关于c - getch() 在 C 中究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13677253/

相关文章:

c++ - 诅咒库 : why does getch() clear my screen?

c - 如何在C套接字编程中的聊天客户端程序中使用select()?

c++ - 函数定义与其在 C 中的声明不匹配,但在 C++ 中匹配

c - 使用 pte_map_offset 映射页表

c - 如何在 Windows 中设置 Turbo C 路径?

c - Linux 的 kbhit()[和 getch()] 问题

c - 进程如何知道哪个子进程结束了?

c - 对普通变量使用类型修饰符(near、far、huge)

c - 当没有变量传递给它时,Turbo C++ : Why does printf print expected values,?

getch() 和 clrscr() 的 c++ 替代方案