日期:2014-05-16  浏览次数:20650 次

Linux下如何在C中获取方向键键值?求大神指导
#include <stdio.h>
#include <ncurses.h>

void main()
{
initscr();
char c=getch();
if (c == -32)
{
   c=getch();
   if (c == 75 )
  {
   printw ("left");
   }
}
getch();
endwin();
}

求大神解答下 为什么我这样写在ubuntu下面无法获得键值?
按完左方向键后直接退出exe 命令行会多个D 是因为什么
要如何实现?
初学不懂 求指导

------解决方案--------------------
跟你在另外一个帖子里说了,你需要正确的初始化ncurses:
initscr();    // 切换到cruses模式
cbreak();    // 立即读取按键,而不是等按回车(也就是禁止行缓冲)
noecho();    // 禁止输入回显(否则按功能键就会出现D之类的字符)
keypad(stdscr, TRUE);     // 允许使用功能键(包括方向键)
refresh();    // 清除屏幕

退出的时候必须用endwin()恢复终端设定。