标题:第二个输入字符的语句为何无法实现?
取消只看楼主
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
结帖率:60%
已结贴  问题点数:10 回复次数:5 
第二个输入字符的语句为何无法实现?
#include"stdio.h"

void main()
{
    //char  monday tuesday wednesday thursday friday saturday sunday;
    char x, letter;
    int i;

      printf("请输入字母:\n");
      scanf("%c", &x);
      if(x == 'm')
          printf("Monday\n");
      else if(x == 'w')
          printf("Wednesday\n");
      else if(x == 'f')
          printf("Friday\n");
      else if(x == 't')
      {
       printf("请再输入第二个字母:\n");
       if((letter = getchar())  == 'h')
           printf("Thursday");
       else if((letter = getchar())  == 'u')
           printf("Tuesday");
       else
           printf("error input");
      }
      else if(x == 's')
      {
       printf("请再输入第二个字母:\n");
      
       if((letter = getchar()) == 'u')
           printf("sunday");
       if((letter = getchar()) == 'u')
           printf("saturday");
       else
           printf("error input");
    }
      else
          printf("error input");

}
搜索更多相关主题的帖子: 字母 void thursday tuesday include 
2013-03-15 21:36
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 2楼 小xiong
额、、、肿是啥意思、、、
2013-03-15 22:13
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 4楼 爱闹的娃
嗯,这个我已经弄清楚了、、、现在我又发现了一个getchar()的陷阱,帮忙看下 谢了
#include"stdio.h"

void main()
{

    char x, y, z;
    int i;

      printf("请输入字母:\n");
      scanf("%c", &x);
      fflush(stdin);
      if(x == 'm')
          printf("Monday\n");
      else if(x == 'w')
          printf("Wednesday\n");
      else if(x == 'f')
          printf("Friday\n");
      else if(x == 't')
      {
       printf("请再输入第二个字母:\n");
      
       if((y = getchar())  == 'h')
           printf("Thursday");
       else if((y = getchar())  == 'u')
           printf("Tuesday");
       else
           printf("error input");
      }

      else if(x == 's')
      {
       printf("请再输入第二个字母:\n");
      
       if((z = getchar()) == 'u')
           printf("sunday");
       else if((z = getchar()) == 'a')
           printf("saturday");
       else
           printf("error input");
    }
      else
          printf("error input");

}

比如先输入T再输入h会输出thursday
但是先输入t再输入u则会出现error input
2013-03-15 22:19
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 6楼 a151141
那为什么输入t再输入h能输出结果呢?
2013-03-15 22:28
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 6楼 a151141
谔谔、、我弄清楚了,是缓冲区的问题、、、
2013-03-15 22:31
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 6楼 a151141
谢啦 下了
2013-03-15 22:32



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




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

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