0

キーボード イベントを検出する C プログラムを使用していますが、入力バッファーを実装するための最適な手法とgetch、バッファー内の最も古い文字を取得するための単純な関数を知る必要があります。

4

1 に答える 1

0

1 つの方法は、循環バッファーを使用することです。固定サイズの配列を作成し、読み取りインデックスと書き込みインデックスの 2 つのインデックスを作成します。キーボード イベントが発生するたびに、値を書き込みインデックスに配置してインクリメントします。関数が呼び出されると、getch読み取りインデックスから読み取り、インクリメントします。いずれかのインデックスが配列のサイズを超えると、先頭にリセットされます。

読み取りインデックスと書き込みインデックスが等しい場合、待機中のキーはありません。書き込みインデックスが読み取りインデックスの直前にある場合は、バッファーがいっぱいで、キーボード イベントを削除する必要があります。

「フル」バッファが必要ない場合は、さらに複雑になります。

于 2012-07-10T03:27:03.567 に答える