提问人:Batman 提问时间:9/15/2022 最后编辑:Andreas WenzelBatman 更新时间:12/2/2022 访问量:134
Turbo C++ 3.1 上的键盘中断
Keyboard interrupt on Turbo C++ 3.1
问:
我叫安德里亚。我在带有 dos 7 的旧 PII 350 MHz 上使用 Turbo C++。我写了一个 while 循环来做一些事情。我必须检查键盘的哪个字母被按下,而没有在循环中检查它,以避免它变慢。有没有办法像在arduino中那样设置中断,仅在按下一个键时停止循环? 我在循环中尝试过使用 bioskey(0),但它减慢了它的速度太多......
答:
0赞
Felix An
12/2/2022
#1
您可以使用 中的函数,该函数暂停程序执行,直到按下一个键,并返回按下的键的字符。getch()
<conio.h>
例:
#include <stdio.h>
#include <conio.h>
int main()
{
puts("Hello World, press any key to continue.");
getch();
puts("Finished");
return 0;
}
请注意,这是一个非标准库。该库和函数在现代版本的 Visual C++ 中也可用,但该函数称为 _getch()。
<conio.h>
<conio.h>
评论
1赞
Arthur Kalliokoski
12/13/2022
我认为她希望程序继续,直到按下一个键,而 getch() 每次都会阻塞。你要先检查 kbhit(),只有当它说按下了一个键时,你才会调用 getch()。我不知道 kbhit() 的 Turbo C 实现,但 djgpp 只是比较缓冲区中指示击键开始和结束的字节,这非常快。
评论