Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349628
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:02

#include

int main(void) {
    int c;
    while ((c = getchar()) != '#') /* 输入#退出 */
printf("-> %d\n", c);
    return 0;
}

上面的代码很简单功能是从键盘上输入字符显示它的ASCII码但有个问题(TC20和BCB6调试都存在下面说的问题)
当第1次运行到 getchar() (也就是代码中注释的那里) 它回要求用户输入字符以回车结束 (这是正常的)
但循环第2次运行到 getchar() 这里是它就没有要求用户输入字符了 (好像跳过了) 而 c 这个变量这时为 '\n' 就显示10
到第3次到 getchar() 这里时又才会要求用户输入,而下1次又将跳过,就这好像每间隔一次才会要求用户输入
运行的结果不是我预测的结果,运行结果如下:

程序的实际结果 我预测的结果
a a
-> 97 -> 97
-> 10 b
b -> 98
-> 98 c
-> 10 -> 99
c e
-> 99 -> 101
-> 10
e
-> 101
-> 10

想请一下各位大侠高手们这是怎么回事?
小弟先感谢各位大侠的参与!

--------------------next---------------------

阅读(1243) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~