2

私は今Cを学び始めており、ユーザーが「Enter」を押したときにキャプチャする方法を理解しようとしています。特に scanf 関数と getc 関数を調べていますが、どうすればよいかわかりません。ユーザーがEnterキーを押したときに、もう一度Enterキーを押すのを待っている/見ている間にいくつかの操作を実行したい...「Enter」はコンソールから入ってくる改行文字ですか? どんなアドバイスでも大歓迎です!

4

4 に答える 4

3

fgetc()を使用してASCII値を確認できます。

while(condition) {
    int c = fgetc(stdin);

    if (c==10) {//Enter key is pressed
    //your action
    }
}
于 2012-04-06T23:04:10.677 に答える
1

ユーザーが入力としてEnterキーを押したときに入力が必要な場合は、scanfまたはを使用できますgetcharこれはcplusplus.comからの例です

/* getchar example : typewriter */
#include <stdio.h>

int main ()
{
  char c;
  puts ("Enter text. Include a dot ('.') in a sentence to exit:");
  do {
    c=getchar();
    putchar (c);
  } while (c != '.');
  return 0;
}

このコードは、stdin(ターミナルウィンドウ)に入力した内容を出力します。

ただし、入力が必要ない場合(新しい学習者にとっては本当に不要で複雑であることはわかっています)、イベントハンドラーを使用する必要があります。

于 2012-04-06T23:08:58.507 に答える
1
printf("Hit RETURN to exit"\n");
fflush(stdout);
(void)getchar();

参照: comp.lang.c FAQ リスト · 質問 19.4b

于 2012-04-06T23:17:37.637 に答える
0

C 言語はプラットフォームに依存せず、独自のキーボード操作はありません。コンソール プログラムを作成しているとき、キーボード入力を処理し、それを標準入力としてプログラムに渡すのはコンソールです。コンソールの入力/出力は通常バッファリングされるため、コンソールは各行の後に入力をプログラムに送信するだけなので、単一のキープレスに反応することはできません。

でも!コンソール アプリケーションがプラットフォーム非依存であることを要求しない場合<conio.h>、一部の Windows コンパイラには という関数を持つ非標準ライブラリがありgetche();ます。char押されました。

于 2012-04-06T23:10:46.250 に答える