我认为(到目前为止)getch()的函数从输入缓冲区(或键盘,简单)读取一个字符。但我不得不和我的实验室老师争论。他们说getch()的唯一工作就是执行程序。我知道getch()可以这样使用。但我只是想知道这是它发明的真正目的吗?或者,它很少用于获得单字符输入?
答案 0 :(得分:6)
getch
用于“从与当前窗口关联的终端读取单字节字符”为specified by POSIX。这是它的主要功能。它可以配置为非阻塞(例如,如果没有输入,函数会立即返回),因此您的实验室教师说它的唯一目的是暂停程序执行是错误的。
如果你在谈论Turbo-C实现的getch()
那么我不确定阻塞语义,但如果它的主要目的是暂停程序执行,那么函数肯定 被命名为更合适的东西,例如pause()
或waitkb()
或类似的东西。
答案 1 :(得分:5)
如您所知,getch()从输入中读取单字节字符。
在Turbo C编译器的那些伟大时代,
啊,那些日子!!getch的常见用法是你可以查看你的输出(如果有的话) 程序,无需打开输出窗口,如果您正在使用 turbo c编译器或者如果您没有从命令运行程序 提示
答案 2 :(得分:2)
是的,getch()
得到一个字符,这是正确的,这意味着你必须给一个输入字符,这是主要的工作
但是直到你提供输入字符,它等待,直到它返回按键的值
用于获取字符输入,您可以在程序的任何地方使用它,但是为了查看程序的输出而不必打开输出窗口(在Turbo C编译器中),您可以将它用作程序的最后一个语句< / p>
答案 3 :(得分:2)
getch()是一种获取用户输入字符的方法。它可用于保存程序执行,但“保持”只是其主要目的的副作用,即等到用户输入字符。如果持有程序执行是其唯一目的,他们就不会生成getch(),因为还有其他方法可以执行程序。另外,请记住getch()不是独立于平台的,所以使用你自己的危险...
答案 4 :(得分:1)
有一个getch()here
的描述它确实将keypress的值作为int返回。