getch 和 getchar 在 windows 和 unix下的区别

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



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

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

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