getch 和 getchar 在 windows 和 unix下的区别
Posted stupid_one
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getch 和 getchar 在 windows 和 unix下的区别相关的知识,希望对你有一定的参考价值。
注意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下的区别的主要内容,如果未能解决你的问题,请参考以下文章
区分getchar(),getch(),getche()三个函数: