getch 函数的问题,怪了

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:34:27
#include<stdio.h>
#include<conio.h>
void main()
{
char a;
a=getch();
printf("%d,",a);
if(a!='\13')
printf("yes");
getch();
}
运行后按回车,为什么输出结果是 13,yes 啊,郁闷

你按回车事实上包含一个'\n'一个\r所以你getch()接收的是'\r'也就是13啊,'\13'(8进制)换成十进制输出的是ASCII的第11个。

所以你结果是13和yes

void main()
{
char a;
a=getch();
printf("%d,",a); //这里a='\r'
if(a!='\13') //这里'\13'=11
printf("yes");
getch();
}

回车的ASCII码为13,所以在按回车后输出回车键的ASCII码:13

这一句“if(a!='\13') ”,如果是想判断是否是回车键,应该改成
“if(a!='\r') ”,/r是回车键的字符形式。