• ベストアンサー
  • すぐに回答を!

教えてください。

  • 質問No.3422870
  • 閲覧数140
  • ありがとう数2
  • 気になる数1
  • 回答数2
  • コメント数0

お礼率 56% (59/105)

いつもお世話になっています。
以下のソースについてですが、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;
}

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

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

ベストアンサー率 36% (72/198)

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

お礼率 56% (59/105)

回答ありがとうございます。
すごく参考になりました。
投稿日時:2007/10/17 21:02

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 26% (845/3158)

処理系に依存せずに実現することは無理です。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ