• ベストアンサー

キー入力について

C言語でプログラミングをしています。 Windows上で実行する場合、ESCキーを入力として 読み取るにはどうすればよろしいのでしょうか?

noname#25605
noname#25605

質問者が選んだベストアンサー

  • ベストアンサー
noname#20242
noname#20242
回答No.2

質問の際、コンパイラも明記してほしいところですが、WindowsAPIを使うなら下記の関数とかどうでしょうか? GetKeyState() GetKeyboardState() GetAsyncKeyState()

noname#25605
質問者

お礼

ご回答ありがとうございます。 コンパイラはborlandC5.5です。作業環境はWindowsXPです。 上記関数を調べたところ、Escキーが押されている状態あるいは 以前に押されたかどうか判断するということですが、 下記のようなことに利用できないでしょうか? printf("数字を入力してください"); if(ESCキーが押された){ /*上記メッセージ後にESCが押されたら*/     return; } fgets(); /*上記メッセージのESCキー以外の入力(数字、文字)を*/ sscanf(); /*以降の処理に使います*/ とにかくfgetsのようにESCを読み取る手段はないのでしょうか?

その他の回答 (1)

  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

#include<stdio.h> #include<conio.h> int main(int argc, char** argv){ int c = getch(); printf("%d\n", c); return 0; } でどうでしょうか。

関連するQ&A

  • 特定のキーのみ入力できなくなった

    何かのキーを押してしまったのか会社のPCのキー入力で、 WINDOWSキーが押されっぱなしみたいな状態になっていました。 「d」を押すとwindouws+dみたいに最小化したり、「r」を押すとwindouws+rみたいにファイル実行が立ち上がったりしました。 パソコンを再起動しても直りませんでしたので、ALTやSHIFTやWINDOWSキーを連打してたりしたら、いつのまにか治っていました。 原因が不明なので、どのような設定をしてしまったのでしょうか。 またその後、エクセルの入力だけ「t h c v」のキーを押しても何も入力できませんでした。 SHIFTキーを押しながら「t h c v」を押すとなんとか大文字ですが入力できました。 こちらはまだ治っていません。 このような状態は初めてですので、修正方法を教えていただけますでしょうか。

  • C言語 1文字入力(Enterキーなし)

    C言語で 標準入力からの入力をEnterキーなしで受け取る方法がわかりません。 (昔やったような気がするんだけど。。readとか使ったような???) やりたいことは、下記のようなことです。 プロンプト > 実行しますか?(y or n) > と表示し、yキー or nキーの入力のみで、継続処理を行うかどうか判断する。このときエンターキーは押す必要はない。 環境は、windowsXP, cygwin + gcc (C言語) です。 よろしくお願いいたします。

  • AutoCAD2009 マルチテキストを入力中に、Escキーで入力をキ

    AutoCAD2009 マルチテキストを入力中に、Escキーで入力をキャンセルできていたものが、キャンセルしようとEscキーを押すと、途中まで入力していた文字がテキストとなって表示されてしまう様になってしまいました。基の様に入力をキャンセルするにはどうしたらよいのでしょうか。良い解決方法ありましたら、お教え下さい。

  • Shiftキーと組み合わせると入力できないキーが出てきた

    NEC VALUESTAR L(VL500/MG)を使用しているのですが、 昨年の2008年9月ぐらいから特定のキーとShiftを組み合わせた入力ができなくなりました。 Shiftも特定のキーも単体だと反応するのですが、両方を組み合わせるとShiftが効かなくなります。 3~4回連打すると、たまに入力できるのですがすぐ戻ってしまいます。 また、左Shiftと右Shiftで反応しないキーが違うというのも気になります。 心当たりがあるとすれば、9月のWindows Updateぐらいでしょうか。 効果がない組み合わせは、以下のとおりです。 左Shift:2qo[fk 右Shift:pfkc Ctrl+Shift+Esc それでは、どうかよろしくお願いします。

  • キー入力変換

    文字を入力して変換したとします。変に変換されたり、間違えて入力していたりだった、ということがあります。そんなときに確定せずに『ESC』キーを押します。変な漢字になったものが入力した状態(ひらがな)になるはずです。でもなりません。どうしてでしょうか?OSはXP。Wordバージョン2002です。よろしくお願いします。

  • キー入力がおかしい

    最近、カタカナに変換するために 「F7キー」を使うと カタカナに変換+「6」が表示されます。 かな入力だと「お」が表示されてしまいます。 そして「半角/全角」を押すと「Esc」キーと同じになり 入力した本文が消えてしまったり たまに、かな入力時「ぇ」とかのキーがだせなかったり(「え」は可能) 電子メールなど入力時に非常に困ってます。 リカバリーも考えているのですが、リカバリーなしで前の状態に 戻すことは可能なのでしょうか? 使用機種はバイオノート PCG-GR9F/P デバイス 日本語PS/2キーボード(106/109キーCtrl+英数) ソフト? Microsoft Natural Input 2002 ver.8.1

  • 外部プログラムを実行してそのプログラム中のキー入力を自動で行うにはどうしたらいいか?

    現在C++でプログラミングを組んでいるものです。 外部プログラムを実行させ、外部プログラム実行中に求められるキー入力を自動で行えないかと考察しているのですがわかりません。。。 外部プログラムといっているのは、現在C++で書いていて その中でsystemコマンドを使い他のexeを実行しているので。 求められるキー入力はDOS窓の画面で ------------------------------------ 上記の設定でよろしいでしょうか?> y ------------------------------------ 上記の『y』の箇所のみで『y』+Enterでその後の処理が走り出すというもので、毎回聞かれる『y』の入力を自動化したいのですが 何か方法は無いものでしょうか?? exeファイルしかなく修正もできないのでなんとか自動的に入力まで含められないかと考えてます。 みなさんどうぞよろしくお願いします。

  • BitLocker回復キーの再入力求められる

    数日前、Windowsupdate(何のソフトのUpDateか覚えていません)した後、PC(Windows10 DynaBook)の起動時、突然、「BitLocker回復キー」の入力を求められる、画面(ブルーバック)が表示され、その時は何のことやらで不明だったので、ESCキーなどで逃れたら、数回同様な画面表示で繰り返していたら、正常にWindows起動されたので、改めて、BitLocker回復キー(48数字)を探して記録しておきました。 その後日、PC立ち上げ時(必ず毎回ではないが)、BitLocker回復キー入力を求められたので、記録しておいたキーを入力して操作を続けられましたが、さらに後日立ち上げ時、また、BitLocker回復キー求められました。 このような状態で、BitLockerキー入力を毎回入力しないとPCが起動できないのでしょうか。このループを回避できないでしょうか。

  • Windows10での日本語入力

    Windows10でIMEを使用して日本語入力をしようとすると、頻繁にウィンドウ外部の左上に入力しようとしている文字が表示され、ウィンドウに直接入力できなくなります。 ESCキーを押すと直接入力出来る様になる事もありますが、outlookではESCキーを押すとウィンドウを閉じようとしてしまう為、この方法が使えません、またwordでは高確率でこの症状が発生するうえESCキーでも症状が改善されずIMEのプロパティを開いてキャンセルで閉じると症状が一時的に改善します。 頻繁にESCキーやIMEのプロパティを開いてキャンセルを行っていると作業効率が非常に悪くなってしまううえ、根本的な解決になっていませんので根本的な解決法をご存知の方がいらっしゃいましたらご教授願います。

  • UWSCでキー入力を変数に代入する方法

    IFB GETKEYSTATE(VK_CTRL) PRINT "Ctrlキーが入力されたよ" ENDIF という風に決め打ちで何が押されたか確認する方法は分かったのですが、 SELECT KeyInput CASE VK_CTRL PRINT "Ctrlキーが入力されたよ" CASE VK_ESC PRINT "Escキーが入力されたよ" SELEND というように変数にキー入力を代入してから比較する方法が分かりません。 キー入力を変数に代入する方法はあるのでしょうか?

専門家に質問してみよう