易码技术论坛

 找回密码
 加入易码
搜索
查看: 814|回复: 5

[求助] getcha是怎么回事啊

[复制链接]
发表于 2010-5-18 16:48:51 | 显示全部楼层 |阅读模式
这是在vc++6.0编译器中一段程序:
# include<stdio.h>
main(void)
{
        int j=12;
        while (1)
        {
                char i=getchar();
                printf("%d,%d\n",i,j);
        }
}
执行结果:
C:\未命名.jpg
我输入0123再按回车,就得到了上面好像是五个printf的结果。
当然,我知道最后一个10是回车键的ASCII码。

但他怎么会这样执行?就像执行了5遍一样。
我想这一定是gecchar的原因。

i里面究竟是怎么存放东西的呢?
 楼主| 发表于 2010-5-19 18:52:07 | 显示全部楼层
执行结果:
0123(我输入的,完了就按回车)
48,12
49,12
50,12
51,12
10,12

以上就是执行结果了。

怎么回事啊?
发表于 2010-5-20 01:19:24 | 显示全部楼层
getcha == get碴 == 找碴

楼主看这个吧
http://apps.hi.baidu.com/share/detail/237457
 楼主| 发表于 2010-5-21 13:31:00 | 显示全部楼层

找茬。。。

这编译器为什么还不一样呢!!!

在另一个机房这样运行,却是只输出一个键值…………
就开始的那个48
 楼主| 发表于 2010-5-21 13:34:34 | 显示全部楼层
“getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。而getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符。getchar带有显示。”

看来,先前那个vc6.0有问题,接受了不止一个字符
发表于 2010-7-26 11:34:40 | 显示全部楼层
阿斯科码
0123对应于
48,49,50,51
回车不记得了,看样子应该是10
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 09:15 , Processed in 0.008752 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表