7760091 发表于 2010-5-18 16:48:51

getcha是怎么回事啊

这是在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里面究竟是怎么存放东西的呢?

7760091 发表于 2010-5-19 18:52:07

执行结果:
0123(我输入的,完了就按回车)
48,12
49,12
50,12
51,12
10,12

以上就是执行结果了。

怎么回事啊?

dragon_ 发表于 2010-5-20 01:19:24

getcha == get碴 == 找碴

楼主看这个吧
http://apps.hi.baidu.com/share/detail/237457

7760091 发表于 2010-5-21 13:31:00

找茬。。。

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

在另一个机房这样运行,却是只输出一个键值…………
就开始的那个48

7760091 发表于 2010-5-21 13:34:34

“getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。而getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符。getchar带有显示。”

看来,先前那个vc6.0有问题,接受了不止一个字符

Still4 发表于 2010-7-26 11:34:40

阿斯科码
0123对应于
48,49,50,51
回车不记得了,看样子应该是10
页: [1]
查看完整版本: getcha是怎么回事啊