getchar() getch() 和 getche() 的区别

getchar()  getch()和getche()的区别:

             (有时候遍程序的时候,都会因为没有清空缓存区而导致结果错误,而且错误不易发现)

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).每次从缓存区中读取一个字符并回显,其余的在再次调用的时候在继续读取,直到读取了回车字符,才停止,等待用户输入。(如果有次你还没有输入完你的字符就输入回车,然后在输入字符,那么这中间就会有一个回车当成了字符,导致结果不正确。有时候,输入的字符多了,用完了自己要用的字符后,一定要记得清空缓存区  fllush(stdin);,否则在下次调用getchar的时候,它会直接使用原来缓存区里的字符,而不是你新输入的字符)。getchar有一个int型的返回值,所以呢,它返回的是第一个字符的ascll码,出错返回-1,这个的头文件是stdio.h。

    getch是直接获取字符的,不等用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显,getch()经常用在调试中,用getch()让程序卡住,等你输入任意键后,才会继续运行。这个必须引入头文件conio.h

getche()的功能是输入后立即从控制台取字符,不以回车为结束(带回显) 这个也必须引入头文件conio.h, getch和getche的差别就在于有无回显。

                       

  

By:暖暖

20141123