【问题标题】:Implement a keyboard buffer in C given a keyboard event给定键盘事件,在 C 中实现键盘缓冲区
【发布时间】:2012-07-10 02:48:07
【问题描述】:

我有一个检测键盘事件的 C 程序,但我需要知道实现输入缓冲区的最佳技术和一个简单的 getch 函数来检索缓冲区中最旧的字符。

【问题讨论】:

    标签: c io keyboard buffer


    【解决方案1】:

    一种方法是使用circular buffer。您创建一个固定大小的数组并具有两个索引,一个读取索引和一个写入索引。每次触发键盘事件时,您将值放在写入索引和增量处。当调用getch 函数时,您从读取索引中读取并递增它。如果任一索引超出数组的大小,则它会重置到开头。

    如果读索引和写索引相等,则没有键在等待。如果写索引刚好在读索引之前,则缓冲区已满,需要删除键盘事件。

    如果你不想要一个“完整”的缓冲区,它会变得更加复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2011-07-16
      相关资源
      最近更新 更多