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

时间:2012-12-03 04:44:00

标签: c turbo-c getch

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

5 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

如您所知,getch()从输入中读取单字节字符。

在Turbo C编译器的那些伟大时代,

  

getch的常见用法是你可以查看你的输出(如果有的话)   程序,无需打开输出窗口,如果您正在使用   turbo c编译器或者如果您没有从命令运行程序   提示

啊,那些日子!!

BTW getch is said to be deprecated.

答案 2 :(得分:2)

是的,getch()得到一个字符,这是正确的,这意味着你必须给一个输入字符,这是主要的工作

但是直到你提供输入字符,它等待,直到它返回按键的值

用于获取字符输入,您可以在程序的任何地方使用它,但是为了查看程序的输出而不必打开输出窗口(在Turbo C编译器中),您可以将它用作程序的最后一个语句< / p>

答案 3 :(得分:2)

getch()是一种获取用户输入字符的方法。它可用于保存程序执行,但“保持”只是其主要目的的副作用,即等到用户输入字符。如果持有程序执行是其唯一目的,他们就不会生成getch(),因为还有其他方法可以执行程序。另外,请记住getch()不是独立于平台的,所以使用你自己的危险...

答案 4 :(得分:1)

有一个getch()here

的描述

它确实将keypress的值作为int返回。