虽然现在大多情况下,我们不用getch() /getchar/ getche来从键盘得到用户输入,但是在某些时候我们仍然会发现用他们会显得很简单。比如说要知道用户此次输入的字符的多少,就可用如下代码实现:
#include "stdio.h"
void main()
{
char c[7],d;
int i=0;
while (1)
{
d=getche();
if (d=='/n')
{
break;
}
else
{
c[i]=d;
i++;
}
}
printf("weishu=%d",i);
getch();
}
但是上面的代码有一个很大的错误,致使程序无法结束而陷入了死循环。
因为getche() 获得的字符是以‘/r’结束的,而不是‘/n’,尽管按下了回车键,但程序依然继续执行,getche()把它当做了字符处理。
另外getch()也是,只是他是不带回显的,就是说输入的字符不会立即显示出来,而getche()则是带回显的。
getchar()是以‘/n’结束的,当按下回车后,会把它当做输入结束的标志。