A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 洋柿子 于 2015-6-21 16:25 编辑

default中添加printf语句后,输入w,a,s,d,得到是"上,呵呵",若输入非w,a,s,d的字符,输出两个呵呵.老师当时default,直接break结束了,是没有输出项的.问题出在哪里啊
int main(int argc, const char * argv[]) {
   
    //定义变量
    char direction;
    printf("请控制小人移动: w.上  s.下  a.左  d.右  q.退出\n");
    //写一个死循环
    int flag = 1;
    while (flag) {
        
        
        //     让玩家输入方法,如果玩家不输入方向系统会一直等待
        scanf("%c",&direction);
        
        //     w 上    s 下   a 左   d 右  q退出
        // W       S     A      D
        switch (direction) {
            case 'w':
            case 'W':
                printf("上\n");
                break;
            case 's':
            case 'S':
                printf("下\n");
                break;
            case 'a':
            case 'A':
                printf("左\n");
                break;
            case 'd':
            case 'D':
                printf("右\n");
                break;
            case 'q':
            case 'Q':
                printf("程序正在退出...\n");
                printf("程序已经退出.\n");
                flag = 0;
                break;
            default:
                printf("呵呵");break;
        }
        
        
    }
   
    //垃圾回收
   
   

}

12 个回复

倒序浏览

回帖奖励 +5

是啊 的确是个问题
回复 使用道具 举报
帅哥啥意思,没听懂。
回复 使用道具 举报
zilin 发表于 2015-6-21 16:33
帅哥啥意思,没听懂。

你把代码复制下,运行下,输入w,a,s,d试试啊.困惑啊
回复 使用道具 举报
zilin 发表于 2015-6-21 16:33
帅哥啥意思,没听懂。

你把代码复制下,运行下,输入w,a,s,d试试啊.困惑啊
回复 使用道具 举报
回车吧,然后default 呵呵
回复 使用道具 举报 1 0
本帖最后由 丁铭检 于 2015-6-21 17:58 编辑

我运行的结果是这样的。。

360截图20150621175840504.jpg (16.11 KB, 下载次数: 25)

360截图20150621175840504.jpg
回复 使用道具 举报 1 0
弹剑 中级黑马 2015-6-21 18:57:48
8#
把回车作为一个其它字符接收了.
在scanf函数%c后添加一个%*c跳过即可.
回复 使用道具 举报
fixer 中级黑马 2015-6-21 19:43:03
9#
吸收一下回车
回复 使用道具 举报
kalon 来自手机 中级黑马 2015-6-22 09:34:26
10#
怎么解决的?
回复 使用道具 举报
弹剑 发表于 2015-6-21 18:57
把回车作为一个其它字符接收了.
在scanf函数%c后添加一个%*c跳过即可.

原来如此
回复 使用道具 举报
弹剑 发表于 2015-6-21 18:57
把回车作为一个其它字符接收了.
在scanf函数%c后添加一个%*c跳过即可.

解决了我的问题..谢谢
回复 使用道具 举报

scanf("%c%*c",&direction);就ok了,老师的default直接没有打印内容.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马