注册 登录
编程论坛 新人交流区

运行结果看不懂

鱿鱼 发布于 2007-11-11 10:15, 804 次点击
main()
{
int a1,a2,a3=258;
a1=97;a2=98;
printf("a1=%c,a2=%c,a3=%c",a1,a2,a3);
getch();
}

运行程序,其输出结果说明了什么?


我运行后分别输出了两个字符和一个笑脸,不懂为什么会这样...
15 回复
#2
lh20067132007-11-11 10:37
以 \ 开头的是转意字符,
比较常用的有
\0 :字符串结束标志 (反斜线后是数字零);
\n :换行(ascⅱ码为10);
\t :横向跳格(水平制表符);
\b :退格;
\r :回车(ascⅱ码为13);
\f :走纸换页;
\\ :代表字符反斜线—— \ (ascⅱ码为92);
\' :代表字符单引号—— ' ;
\" :代表字符双引号—— " ;
\ddd:3位8进制数,用来表示字符 (d代表具体数字);
\xdd:以x开头的2位16进制数,用来表示字符 (d代表具体数字);
以 % 开头的是格式转换说明符,
较常用的有:
%% : 代表字符百分号—— % ;
%d : 将输入\出列表对应的表达式以整型(int)输入\出;
%f : 将输入\出列表对应的表达式以实型(float)输入\出;
%c : 将输入\出列表对应的表达式以字符型(char)输入\出;
所以只需对照输入\出就行了,除了 转意字符 和 格式转换说明符 对应输入\出,其他字符只需原样输入\出


a1=97;a2=98;
这个是a,b的ASCII码 你的输出是以字符型(char)输出所以是a,b
那个笑脸就是那样了 算是超出输出范围了吧
#3
anguiling2007-11-11 10:46
如果把输出语句中的a3=%c改成a3=%d.则 就不可能出现笑脸了.
#4
lyixh2007-11-11 11:02

基础知识

#5
lilu7272007-11-11 11:03
%c是输出char形的
#6
dydytd34002007-11-11 13:27
格式转换说明符,也就是  %c(字符型,其他还有 %d 整型;%f 字符型等。)  将输出数据进行了格式转换,而整型转换为字符型是对照其相应的ASCII码来进行转换,这里就是利用了这一点,将数字转换成了字符拼写成了一个笑脸。
#7
pjm1682007-11-11 13:30
是字符输出,当然看不懂了
#8
cecil122007-11-11 14:30
不懂郁闷
#9
aohing2007-11-11 18:05
请问你想要的结果是什么 ?
还有用这个语句getch();的作用是什么?
#10
zaf01062007-11-11 19:11
回复:(鱿鱼)运行结果看不懂
main()
{
int a1,a2,a3=258;
a1=97;a2=98;
printf("a1=%c,a2=%c,a3=%c",a1,a2,a3);
getch();
}



其中
a3=258;
用 a3=%c输出 超过了范围了 %c表示字符输出
#11
hjjety12342007-11-11 20:47
#12
guti19842007-11-11 22:19
我想问一下.这题的主要目的是什么?
还有其中的 getchar() 又是什么含义.不要不可以么?
#13
duzougaoao2007-11-11 22:31
回复:(鱿鱼)运行结果看不懂
最后一个getch()没用,不能通过编译,258已经超出了ASCII字符编码,无法正常输出,输出的笑脸是乱码的形式。
#14
xxynhm2007-11-11 22:33
C#的webBrowser控件问题

请问 webBrowser 怎么获得打开网页的 我鼠标指定的坐标
#15
baijian7102007-11-11 23:06
记得好像老师说过字符和整数的对应应该到128,以后再输出的话,应该是两个字符和起来输出一个汉字,你在加一个字符试试是不是这样
#16
cq19881242007-11-12 00:09
ASCII码要记好!
1