• ベストアンサー

教えてください。

いつもお世話になっています。 以下のソースについてですが、ESCキーを入力するとwhile文から抜けたいのですが・・・教えてください。 #include <stdio.h> int main(void) { char ch[128]; while(1){ scanf("%s", ch); if( ch[0] == 0x1B ){ /* キー入力が Esc キーなら、 */ printf("%02X=Esc ",ch[0] ); /* Esc の キーコ-ドを表示して、*/ break; /* while のループを終了する */ } } return 0; }

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

  • ベストアンサー
  • kb-nike
  • ベストアンサー率36% (72/200)
回答No.2

MS-DOS(Win XP)で動きます。 scanf()ではやりにくいので、getch()を使っています。 #include <stdio.h> int main(void) { char ch[128]; int c; int i; for(i=0; i<128; i++) ch[i] = '\0'; i = 0; while(1){ c = getch(); if(c == 0x1B){ /* キー入力が Esc キーなら、 */ printf("%02X=Esc\n", c); /* Esc の キーコ-ドを表示して、*/ break; /* while のループを終了する */ } else{ putch(c); ch[i] = (char)c; i ++; } } printf("%s%2X=ESC\n", ch, c); return 0; }

hatenan114
質問者

お礼

回答ありがとうございます。 すごく参考になりました。

その他の回答 (1)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

処理系に依存せずに実現することは無理です。

関連するQ&A

専門家に質問してみよう