キー入力を調べるために以下の
プログラムを作成したのですが・・・
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
intinkey = 0;
while (1) {
inkey = getch();
if (inkey == 0x1b) {
break;
}
printf("%d %x\n", inkey);
}
}
↑↓→←とかのキーは、
変数inkeyの値を表示する前に、
0 0と表示されます。
なぜなんでしょうか?
ほかのキーでは、普通に表示されます。
教えてください。
No.2ベストアンサー
- 回答日時:
まず、cherry_moonさんが書かれている様に、printf() 関数の使い方が
おかしいですね。この場合、 printf("%d %x\n", inkey, inkey); と
書くのが正解かも知れませんね。
ただ、ご質問の内容は、何故、矢印キーの場合は、値を表示する前に 0 0
と表示されるのかと言う事なので、意図している回答とは違いますね。
で、何故、0 0 と表示されるかですが、それは、 getch() の仕様です。
リファレンスマニュアル等をもう一度読まれてみてはどうでしょうか?
ファンクションキー、矢印キーなどは、getch() は2回呼び出されると
書かれているかと思います。また、その1回目は、0、または 0xE0 が
返されると書かれています。
リファレンスマニュアルとか無いんです。
全部無料の使ってますから。
ありがとうございました。
でも、プログラム自体には、
printf()関数の使い方以外問題は
無かったようですね。
これぐらいのことなら、getch()関数を
検索すればよかったのかなぁ・・・なんて。
(聞いておいてすいませんです。。。)
また、お世話になるかもしれませんが
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミング実行後の表示される値を答えよ #include<stdio.h> void main( 7 2022/05/20 00:07
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CTRL+Dでループを抜けるには
-
コンパイルエラーについて
-
入力したお金の金額からお札の...
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
4の倍数を論理演算で表す。。
-
Segmentation fault
-
三角形の判別
-
両替プログラムなど
-
WM_CLOSEで閉じれないウィンド...
-
ヌメロンの対戦相手
-
関数をこえてプログラムを強制...
-
c言語でAからZまでを表示する...
-
矢印キーの反応が悪くなります
-
CPU温度・負荷等を調べるには
-
C言語について
-
【C言語教えてください】sin波...
-
unsigned int型について
-
Cプログラムについて
-
なぜに0が表示されるの?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報