免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1992 | 回复: 5
打印 上一主题 下一主题

[C] 请教:关于getch()函数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-21 14:54 |只看该作者 |倒序浏览
代码如下:
  char c;
  printf("input x:");
  scanf ("%d", &x);
  printf("\ninput y:");
  scanf ("%d", &y);
  printf("\ninput c:");
  while((c=getchar())!='\n'&&c!=EOF)
          ;
// scanf ("%c", &c);
  c = getch();
  p = f(c);
  printf ("%d", p(x, y));
  getch();

getch();意思是输入立即读入,相当于more命令是按任意键翻译的样子,
这段代码在vc6.0可以正常运行,输入x与y后,输入c就可以立即看到结果;
但是在linux环境下getch()还是读取了'\n'这个换行符,为什么?

论坛徽章:
0
2 [报告]
发表于 2007-11-21 14:57 |只看该作者
我的manpage-dev 和manpages-posix-dev中没有getch的man

论坛徽章:
0
3 [报告]
发表于 2007-11-21 15:00 |只看该作者
在linux下getch()可以在man中查到(Fedora),编译的时候要用到libcurses,头文件是curses.h

论坛徽章:
0
4 [报告]
发表于 2007-11-21 15:02 |只看该作者
原帖由 zhangchegn 于 2007-11-21 15:00 发表
在linux下getch()可以在man中查到(Fedora),编译的时候要用到libcurses,头文件是curses.h

呵呵,getch是curses提供的接口  没安装libcures  就不会有这个的man了。

论坛徽章:
0
5 [报告]
发表于 2007-11-21 15:07 |只看该作者
我都是直接用虚拟机安装linux来用的,也比较方便。

论坛徽章:
0
6 [报告]
发表于 2007-11-21 15:13 |只看该作者
跑题了,是不是因为LINUX下换行符和WINDOWS不一样导致的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP