0

インターネットで次のコードを見ました

DWORD qThreadID;
HANDLE hThread = CreateThread(0, 0, ThreadFn, &uiCounter, 0, &qThreadID);

// Loop until the user enters 'q'
char cChar = ' ';
while (cChar != 'q') {
    cout << uiCounter << endl;
    cChar = (char)getchar();
}

キープレスイベント「Enter」はどのように機能しますか? (「Enter」を押す以外にデバッグすると、他のキープレス機能は機能しません)ありがとう

4

3 に答える 3

3

getchar()ライブラリとOSの両方でバッファリングされている標準入力から読み取ります。通常の OS は、Enter キーが入力されるまで、コンソール デバイスでの読み取りから戻りません。コマンドライン編集をサポートし、入力を確定するにはエンターキーが必要です。

于 2012-04-12T07:25:21.750 に答える
1

getchar() は、入力の 1 文字を読み取ります。

ただし、端末は入力に対して行バッファリングを行う可能性が高く、Enter キーを押すまで入力はプログラムに送信されません。

于 2012-04-12T07:23:20.233 に答える
0

コマンド ラインとして解釈されるenteraを入力すると、これがユーザー入力の最後であると見なされ、このストリームから単一の文字バッファーを読み込もうとしているため、その前に文字を入力せずに単に押すと何も返されません。msdn を参照してください。http://msdn.microsoft.com/en-us/library/5231d02a%28v=vs.71%29.aspx\nEOFgetChar()enter

于 2012-04-12T07:25:36.567 に答える