标题:怎么回事 输入a 后面也来了
只看楼主
China_EyOay
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-6
结帖率:0
已结贴  问题点数:20 回复次数:6 
怎么回事 输入a 后面也来了
   代码:#include<stdio.h>
int main()
{
    char h;
    while(scanf("%c",&h)!='#')
    {
        switch(h)
        {
            case 'a': printf(" a!");
            break;   
            case 'b': printf(" b!");
            break;        
            case 'c': printf(" c!");
            break;        
            default : printf("       找不到你输入的 ! ");
            
        }
   
    }
    return 0;
}
搜索更多相关主题的帖子: default return 
2016-12-17 13:09
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:7 
default : if (h!='\n')printf("       找不到你输入的 ! ");
~~~回车键'\n'作怪~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-17 14:30
China_EyOay
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-6
得分:0 
回复 2楼 九转星河
谢谢了
2016-12-17 15:58
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:7 
以下是引用九转星河在2016-12-17 14:30:30的发言:

 default : if (h!='\n')printf("       找不到你输入的 ! ");
~~~回车键'\n'作怪~~~

这样,输入#不能结束循环,为什么呢?

Code is my life.
2016-12-17 18:22
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
while (scanf("%c",&h)&&h!='#')

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-17 20:04
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
得分:7 
while(scanf("%c",&h)!='#') 


如果你不知道这句话的执行顺序或者执行原理,建议不要这样去书写,或者编程。

先学习一下scanf()的使用方法.  scanf()的返回值并不是返回你输入的内容, 而是返回你正确输入的内容的个数.  因此,scanf()只能返回int型的数字, 而不会返回字符.

在某些特殊情况下, 根据C的特点, scanf()的返回值可以和某个字符进行关系运算, 比如,输入65个数字, scnaf()返回了65,然后和字符A来运算等,但一般来说, 几乎没有人会这么去做.

因为你只是输入了一个字符, scanf()几乎都会正确执行,也就返回数字1,  而1!='#'永远都成立.

代码测试环境:  WinXP+C-Free5.0.
2016-12-17 20:24
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:0 
回复 5楼 九转星河
这句话怎么解释呢?

Code is my life.
2016-12-18 11:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472513-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031186 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved