- ベストアンサー
教えてください。
いつもお世話になっています。 以下のソースについてですが、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; }
- みんなの回答 (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; }
その他の回答 (1)
- jacta
- ベストアンサー率26% (845/3158)
処理系に依存せずに実現することは無理です。
お礼
回答ありがとうございます。 すごく参考になりました。