我有一个检测键盘事件的 C 程序,但我需要知道实现输入缓冲区的最佳技术和一个简单的getch
函数来检索缓冲区中最旧的字符。
问问题
694 次
1 回答
0
一种方法是使用循环缓冲区。您创建一个固定大小的数组并具有两个索引,一个读取索引和一个写入索引。每次触发键盘事件时,您将值放在写入索引和增量处。调用该getch
函数时,您从读取索引中读取并递增它。如果任一索引超过数组的大小,它就会重置到开头。
如果读索引和写索引相等,则没有键在等待。如果写索引刚好在读索引之前,则缓冲区已满,需要删除键盘事件。
如果您不想要“完整”缓冲区,它会变得更加复杂。
于 2012-07-10T03:27:03.567 回答