码迷,mamicode.com
首页 > Windows程序 > 详细

getch 和 getchar 在 windows 和 unix下的区别

时间:2016-12-28 01:57:49      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:头文件   注意   arc   stdin   标准   win   转义字符   conio.h   .com   

注意getch()是从console读取,(非标准函数)
getch()需要的头文件是<conio.h>。
而getchar()是从stdin,一般是指键盘
windows平台下ENTER键会产生两个转义字符 \r\n,
\r : 回到开头的地方。
\n : 去到下一行开头



因此,getch()读到 \r 时就会返回他的ASCII码13。(后面的被无视了)
奇怪的问题是为什么getchar()会返回10呢?
前面不是说过返回第一个字符吗?
这的确会让人费解。实际上产生这个结果的原因是,
getchar()把输入的 \r\n 转换成了 \n ,
所以返回的是 \n 的ASCII码 10。为什么会这样呢?
因为前面说过getchar()是C语言标准库函数,
而在unix系统中ENTER键只产生 \n 。顺便说一下,
在MAC OS中ENTER键将产生 \r ,同样也会被替换成 \n。
这样,不管在什么平台下,getchar()都会得到相同的结果,
所以说getchar()标准库函数。

 

http://www.cnblogs.com/candyming/archive/2011/11/25/2262877.html

getch 和 getchar 在 windows 和 unix下的区别

标签:头文件   注意   arc   stdin   标准   win   转义字符   conio.h   .com   

原文地址:http://www.cnblogs.com/liuweimingcprogram/p/6227984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!