主题 : 怎么样在控制台下获取键盘输入 复制链接 | 浏览器收藏 | 打印
成功源于专注!
级别: 新手上路
UID: 11257
精华: 0
发帖: 21
金钱: 140 两
威望: 49 点
综合积分: 42 分
注册时间: 2009-12-02
最后登录: 2011-05-15
楼主  发表于: 2010-07-07 13:07

 怎么样在控制台下获取键盘输入

现在没有触摸屏和鼠标等输入设备。。我想让我的程序在控制台下获取键盘输入从而实现人机交互。。应该怎样实现呢?

为什么cin不行呢?
真正奇妙的不是世界是什么样子..而是世界就是这个样子..
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-07-07 13:35
cin? 那得看你的程序进程的stdin是什么吧, 在终端命令行上执行$ls -l /proc/<进程号>/fd, 看1指向的是什么设备
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
成功源于专注!
级别: 新手上路
UID: 11257
精华: 0
发帖: 21
金钱: 140 两
威望: 49 点
综合积分: 42 分
注册时间: 2009-12-02
最后登录: 2011-05-15
2楼  发表于: 2010-07-07 14:17

 回 1楼(kasim) 的帖子

我没太懂你说的意思..

在1的进程下有如下设备:
auxv     cwd      exe  maps  mounts  stat   status  wchan
cmdline  environ  fd   mem   root    statm  task

那如果不用cin怎么实现控制台输入。。让开发板识别呢?我做了几个PushButton。。我想在控制台下输入1就触发按钮1从而实现人机交互。。我没有头绪..kasim能不能指点一下。。
真正奇妙的不是世界是什么样子..而是世界就是这个样子..
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-07-07 15:50
在1的进程下有如下设备:
auxv     cwd      exe  maps  mounts  stat   status  wchan
cmdline  environ  fd   mem   root    statm  task

这些不是设备,而是proc文件系统的节点,可以反映进程的一些内部信息。
其中fd是一个目录,里面的每个链接指向了这个进程所打开的文件。链接的名称就是文件描述符,其中0代表标准输出,1代表标准输入,2代表标准出错(我希望我没记错:))。
对于cin来说,默认的行为是从标准输入设备上读取字符,也就是fd/1所指向的设备。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
成功源于专注!
级别: 新手上路
UID: 11257
精华: 0
发帖: 21
金钱: 140 两
威望: 49 点
综合积分: 42 分
注册时间: 2009-12-02
最后登录: 2011-05-15
4楼  发表于: 2010-07-07 16:55

 回 3楼(kasim) 的帖子

怎样读取键盘设备呢?我完全没思路。。
真正奇妙的不是世界是什么样子..而是世界就是这个样子..
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2010-07-07 17:29
对应用程序来说,键盘设备就是/dev/ttySAC0(我假设你说的是你PC上的键盘)。

你为什么不尝试用板子上的按键呢?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."