C语言高手速度来!!!

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:09:17
程序
#include<stdio.h>
void main()
{putchar(getchar());}
为什么我输入数字6后输出的也是6,为什么不是6所对应的ASCII表上的字符呢??????
#include<stdio.h>
void main()
{ char c;
c=6;
putchar(c);
}

#include<stdio.h>
void main()
{ int c;
c=6;
putchar(c);
}
为什么上面2个程序输出的结果就是6对应的ASCII表上的字符呢?????????????
尽量写清楚些 我是个C语言菜鸟级的,

你getchar() 读入的本身是字符,当然输入什么就输出什么了。
你要数字变 字符的话,

scanf("%d",&n);
putchar(n);

===================

:#include<stdio.h>
void main()
{ char c;
c=6; //这个6 默认是 int 型的,是个数。虽然你这里c 是char 型变量,但是C语言里面它有自动转类型特性。所以这里c 已经是整数型的了。
putchar(c); //所以这里这类输出的是ascii 6对应字符。
}

#include<stdio.h>
void main()
{ int c;
c=6; //这里本来就是整型。
putchar(c); putchar() 是输出字符。他碰到整型的,就认为是ascii 。输出对应 字符。

因为你用了putchar,就再把字符输出,而不是输出其对应的ASCII码.要输出其对应的ASCII码,用printf("%d",n);

你的问题不是出在程序上,而是出在你在输入的数字上了。。
注意:getchar函数只能接受一个字符,不能接受一个数字。
如果按你的意思,输入一个ASCII码,输出以个字符,程序可以改成:
#includ<stdio.h>
void main()
{int i;
scanf("%d",&i);
printf("%c",i);
}

因为你输入的是个字符