C++ の getch 関数

C No Getch Guan Shu



C および C++ プログラミング言語の領域では、さまざまな自然なメソッドとライブラリが使用されます。この記事では、C++ の getch() メソッドを詳しく調べます。 getch() 関数は、キーボードから文字列を読み取る場合に使用されますが、出力は画面に投影されません。ここでは、有効な例と証明の助けを借りて、この getch() 関数を正しく調べて認識していきます。このメソッドは主に、ユーザーから入力を取得するために C++ のコンソール ベース (出力) シナリオで使用できます。

C++ の Getch() とは何ですか?

C++ では、「cstdio」ヘッダー ファイルという名前のライブラリが主に getch() 関数に使用されます。 Getch() も「conio. h」ヘッダー ファイルはコンパイラ固有であり、完全には C++ ライブラリ標準の一部ではないため、非標準関数です。 getch の略語は「get Character」で、ユーザーが入力を渡すまでしばらく出力画面に留まるために使用されます。

例を使用して、この概念を詳しく説明しましょう。ここでは、適切なシナリオを使用して、C++ の getch() メソッドの構文、使用法、動作について学びます。







シナリオ 1: メニュー駆動型アプリケーションで Getch() を使用する方法

さまざまなオプションをリストするメニュー駆動の小さなアプリケーションについて説明しましょう。各オプションはレストランのメニューなど、さまざまな目的に合わせて設計されています。この例のコード スニペットを以下に添付します。



#include
#include
#include
を使用して 名前空間 標準 ;
整数 主要 ( ) {
文字 選択 ;
標準 :: コート << 「レストランのメニュー: \n ;
標準 :: コート << 「1. 選択肢 1: ピザ \n ;
標準 :: コート << '2. 選択肢 2: ハンバーガー \n ;
標準 :: コート << '3. 選択肢 3: ケーキ \n ;
標準 :: コート << 「選択肢を入力してください:」 ;
選択 = ゲッチ ( ) ; // ユーザーが入力を与えると、getch() は Enter ボタンを押さずに入力を読み取ります
スイッチ ( 選択 ) {
場合 「1」 :
標準 :: コート << \n 「ピザ」を選択すると \n ;
壊す ;
場合 「2」 :
標準 :: コート << \n 「バーガー」を選択します \n ;
壊す ;
場合 「3」 :
標準 :: コート << \n 「ケーキ」を選択すると \n ;
壊す ;
デフォルト :
標準 :: コート << '\選択の余地はありません - 注文はありません \n ;
}
戻る 0 ;
}

まず、プログラムの開始時に必要な標準ライブラリを宣言します。 main 関数内にロジックを作成すると、プログラムの main 関数内にあるものはすべて実行可能になります。ここでは、データ型が文字である「choice」変数を宣言します。次に、コンソール画面に表示されるメニューを作成します。 「ピザ」、「バーガー」、「ケーキ」、「選択なし」などのさまざまなオプションを含む「レストラン メニュー」をユーザーに提供します。



ユーザー入力がこの変数に保存され、選択されたオプションに従って出力が自動的に表示されるため、 getch() を変数選択に渡します。メニューからオプションを選択するには、switch() 関数を使用し、この関数に「choice」を渡します。 「switch」メソッド内では、各オプションに対して個別にケースを作成します。 C++ の「switch」メソッドでは、ステートメントの終わりを示す Break ステートメントが各ケースの最後に常に使用されます。コンパイルして実行すると、次のようなコンソール画面に出力が表示されます。





ここで getch() 関数が機能します。ユーザーが選択肢を入力すると、getch() 関数はこの入力を switch ケースと比較し、出力またはオプションをコンソールに自動的かつ即座に表示します。



前に添付したスクリーンショットでは、ユーザーが選択肢「2」を入力すると、「'Burger' を選択しました」という出力が画面に表示されます。この例では、ユーザーが入力を入力すると getch() の動作がクリアされ、コンソールに表示されるユーザー指定の入力ではなく、予期される出力がコンソール画面に表示されます。

シナリオ 2: Getch() を使用してユーザーから隠しパスワードを受け入れる

このシナリオでは、ユーザーが秘密裏にパスワードを入力し、入力したパスワードをコンソール画面に表示する方法についての概念を説明します。ここでは、getch() 関数を使用して、ユーザーが入力を渡すまで画面を保持します。カーソルがコンソール画面に入力を表示しないため、getch() はユーザー入力を表示しないことに注意してください。このシナリオのコード スニペットは次のとおりです。

#include
#include
#include
#include
#include <文字列.h>
整数 主要 ( )
{
文字 パス [ 8 ;
整数 メートル ;
標準 :: コート << 「8桁のパスワードを入力してください:」 ;
のために ( メートル = 0 ; メートル <= 7 ; メートル ++ ) {
パス [ メートル = ゲッチ ( ) ;
標準 :: コート << 「*」 ;
}
パス [ メートル = ' \0 ' ;
標準 :: コート << \n ;
標準 :: コート << 「入力したパスワードを再表示します:」 ;
のために ( メートル = 0 ; パス [ メートル = ' \0 ' ; メートル ++ )
標準 :: コート << ( 「%c」 、パスウ [ メートル ) ;
ゲッチ ( ) ;
戻る 0 ;
}

指定されたコードにあるように、getch() 関数の使用と画面上に出力を表示するために不可欠な標準ライブラリを追加します。このプログラムの主な機能は、ユーザーからパスワードを入力し、画面にパスワードを表示するさまざまな手順を含むことです。データ型が「Char」で、サイズが 8 要素の配列変数が必要です。これ以外に、反復値を格納する変数も必要です。

ここでは、配列サイズが「8」の場合にユーザーのすべての入力カウントを読み取る「For ループ」を使用します。次に、ユーザーはループを利用して入力コンソール ウィンドウでキー パスワードを押すだけです。この「for」ループ内で、getch() 関数を passw[] 配列に渡します。この機能は、ユーザーが 8 文字のパスワードを入力するまで画面に保持されます。ループ回数ごとに、ユーザー入力回数ごとに「*」を出力します。ループはここで閉じられます。

その後、再度「for」ループを使用して、passw[] から値を取得するだけで隠しパスワード自体を表示します。 Getch は、ユーザー入力が配列に完全に保存されるまで画面を自動的に保持し、パスワードを画面に表示します。

「コンパイルして実行」オプションをクリックしてプログラムを実行し、画面に出力を表示します。

画面に8桁のパスワードを入力します。 8桁の入力が完了すると、入力したパスワードがコンソールウィンドウに自動的に表示されます。キーボードのキーを 8 回押して、パスワードを入力します。

getch() 関数のせいで出力画面がフリーズします。 getch() 関数は、前に添付したスクリーンショットに示すように、入力データを画面に表示するだけです。

結論

結論として、getch() は C および C++ プログラミングの最も重要な関数であり、ユーザーが画面上に入力を表示せず、またはカーソルを表示せずにキーボードからの入力をフリーズすることを容易にします。非標準ライブラリのため、プログラム内で getch() を使用しない場合、プログラムの実行に必要な時間がミリ秒になるまでコンソール ウィンドウが表示されます。この記事では、適切なコード例を使用してこの方法を説明しました。