現在,C++でキー入力に応じた処理をさせようとしているのですが,キー入力を受け付けているのかいまいち怪しいです.
cursesライブラリに含まれるkeypadという関数w用いています.
ひとまずキー入力の成功を確認するために矢印キーに応じて1~12月までを描画するプログラムを書こうとしています.
どなたか知識がある方がいらっしゃいましたら,どうしたらキー入力ができるかお教えください.
C++
1 initscr(); 2 //矢印キーやファンクションキーなどの特殊キーを利用可能にする 3 keypad(stdscr, TRUE); 4 //入力したキー(→,←)を画面に表示しないようにする 5 noecho(); 6 //キーを押したらすぐにその文字がプログラムから読み取れるようにする 7 nocbreak(); 8 9 int cnt_month = 1; 10 11 while (true) 12 { 13 14 if (KEY_RIGHT == 1) 15 { 16 cnt_month++; 17 if (cnt_month > 12) 18 { 19 cnt_month = 1; //折り返す 20 } 21 } 22 if (KEY_LEFT == 1) 23 { 24 cnt_month--; 25 if (cnt_month < 1) 26 { 27 cnt_month = 12; //折り返す 28 } 29 } 30 31 if (KEY_ENTER == 1) 32 { 33 break; 34 } 35 36 switch (cnt_month) 37 { 38 case 1: 39 mvaddstr(1, 25, "1月"); //任意の座標に文字列を描画 40 break; 41 case 2: 42 mvaddstr(1, 25, "2月"); 43 break; 44 case 3: 45 mvaddstr(1, 25, "3月"); 46 break; 47 case 4: 48 mvaddstr(1, 25, "4月"); 49 break; 50 case 5: 51 mvaddstr(1, 25, "5月"); 52 break; 53 case 6: 54 mvaddstr(1, 25, "6月"); 55 break; 56 case 7: 57 mvaddstr(1, 25, "7月"); 58 break; 59 case 8: 60 mvaddstr(1, 25, "8月"); 61 break; 62 case 9: 63 mvaddstr(1, 25, "9月"); 64 break; 65 case 10: 66 mvaddstr(1, 25, "10月"); 67 break; 68 case 11: 69 mvaddstr(1, 25, "11月"); 70 break; 71 case 12: 72 mvaddstr(1, 25, "12月"); 73 break; 74 } 75 getch(); 76 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。