#include <stdio.h> int main(){ char muki="L"; int kn; while(1){ system("cls"); if(muki == 'L'){ printf(" \n"); printf(" *** \n"); printf(" * \n"); printf(" ********* \n"); printf(" ****** \n"); printf(" * * \n"); printf(" * * \n"); printf("_y_y_y*y_y_y*y_y_y_y_\n"); } else if(muki == 'R'){ printf(" \n"); printf(" *** \n"); printf(" * \n"); printf(" ********* \n"); printf(" ****** \n"); printf(" * * \n"); printf(" * * \n"); printf("_y_y_y*y_y_y*y_y_y_y_\n"); } printf("\n"); printf("<-で左向き、->で右向き、Escキーで終了\n"); scanf("%d", &kn); if(kn == 27) break; // Escキー if(kn!= 0) continue; if(kn == 77) muki="R"; if(kn == 75) muki="L"; } return 0; }
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
sh: 1: cls: not found
<-で左向き、->で右向き、Escキーで終了
…
コンピュータが悲鳴を上げました。
scanf(“%d”, &kn);だと、32764となる
$ ./main
^[[C
32764
あ、キーコード取得はgetchar()だ。scanf()とこんがらがる。
#includeint main(){ int kn; kn = getchar(); printf("%d", kn); return 0; }
$ ./main
a
$ ./main
^[[C
27