| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4533 人关注过本帖
标题:switch语句问题
只看楼主 加入收藏
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 11楼 ali123654
楼主的不就是要求输入是字符型嘛?你可以试试,我已经试过了,用我填加了一些输出标志的那个试更能看出结果,其中更多原理我也说不清楚了.......
2016-01-20 09:05
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
C和C++都是支持k为char型的:
程序代码:
#include<iostream>
{   char k;
    int i;
    for(i=1;i!=3;i++)
    {
        std::cout<<"enter k #"<<i<<": ";
        std::cin>>k;
        std::cout<<std::endl;
        switch(k)
        {
            case '0':  std::cout<<"another\n";break;
            case '1':  std::cout<<"number\n";break;
            default:std::cout<<"down\n";
        }
        std::cout<<"k:"<<k<<"\ti:"<<i<<std::endl;
    }
    return 0;
}


C中:
程序代码:
#include<stdio.h>
int main()
{   char k;
    int i;
    for(i=1;i!=3;i++)
    {
        printf("k #%d:",i);
        scanf("%c%*c",&k);//这样就可以了,已经清楚原因了,呃,真是得多学呀,是这样的,读入第一个数字后都要回车一下,可回车也是一个字符,会被读入到k中,所以出现了之前的情况,用%*c可以吸收掉回车符,从而可以继续。
        printf("\n");
        switch(k)
        {
            case '0':  printf("another\n");break;
            case '1':  printf("number\n");break;
            default:printf("down\n");
        }
        printf("k:%c\n",k);
    }
    return 0;
}


[此贴子已经被作者于2016-1-20 09:29编辑过]

2016-01-20 09:12
波波bobobo
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2016-9-6
收藏
得分:0 
6666

2016-09-10 17:00
快速回复:switch语句问题
数据加载中...
 
   



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

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