关于上下左右方向键的问题

DiffusionTensorImage 2011-12-06 03:51:41
关于上下左右四个方向键的问题,我也看了论坛上之前的很多帖子,我的程序是这样的:

char up;
up=getchar();
if (up==0)
up=getchar();

问题是每次我DEBUG的时候up的值总是10,即换行键,即使我按了四五下上键再按回车其值也是10,求解,感谢!
...全文
356 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhao4zhong1 的回复:]
C/C++ code
#include <windows.h>
#include <conio.h>
void main() {
unsigned short int k;
while (1) {
Sleep(100);
if (_kbhit()) {
k=_getch();
if (0==k) k=_getch()<<8;
cprintf("ke……
[/Quote]

我把getchar()改为getch(),每次读入的时候总是先出现一个-32,请问这个-32是什么值?
AnYidan 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhao4zhong1 的回复:]
C/C++ code
#include <windows.h>
#include <conio.h>
void main() {
unsigned short int k;
while (1) {
Sleep(100);
if (_kbhit()) {
k=_getch();
if (0==k) k=_getch()<<8;
cprintf("ke……
[/Quote]

++
qq120848369 2011-12-06
  • 打赏
  • 举报
回复
read是不会理会上下左右的,听说getch可以。
selooloo 2011-12-06
  • 打赏
  • 举报
回复
你应该是按了回车键吧,上下左右键没有对应的ASC码,也不会被读取
赵4老师 2011-12-06
  • 打赏
  • 举报
回复
#include <windows.h>
#include <conio.h>
void main() {
unsigned short int k;
while (1) {
Sleep(100);
if (_kbhit()) {
k=_getch();
if (0==k) k=_getch()<<8;
cprintf("key 0x%04x pressed.\r\n",k);
}
}
}
  • 打赏
  • 举报
回复
getchar()是从输入流中读字符,上下左右应该不能读的吧
IVERS0N 2011-12-06
  • 打赏
  • 举报
回复
你用getch试试

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧