1

私はメインメニューを持つプログラムを書いています.1つのメニュー選択の数字を入力することでユーザーがアクセスできるいくつかの機能があります. そのために、_getch() を使用しています。ユーザーが EOF キーを入力したときにプログラムを終了できるようにする必要がありますが、_getch() は実際には EOF キーストロークをキャッチしません。_getch() の代わりに getchar() を使用して動作させることができることはわかっていますが、関数を選択するたびにユーザーに強制的に Enter キーを押してもらいたくありません。

_getch() で EOF をキャッチする方法はありますか? これは Windows 用です。重要な場合は、何かを見つけることができなかったので、助けていただければ幸いです。

4

1 に答える 1

0

標準 C 入力ストリームstdioはライン バッファリングされており、強制的にフラッシュする定義済みの方法はありません。_getchこれを避けて、新しい文字が入力されるたびにバッファから読み取りたい場合は、OS 固有の魔法を使用する必要がconio.hあります。

PDCurses ライブラリなど、getch型関数の実装は他にもあります。getch

于 2013-10-08T05:24:15.023 に答える