标题:第二个输入字符的语句为何无法实现?
只看楼主
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
结帖率:60%
已结贴  问题点数:10 回复次数:8 
第二个输入字符的语句为何无法实现?
#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
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:0 
哇,这个好像有点肿
2013-03-15 22:12
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
得分:0 
回复 2楼 小xiong
额、、、肿是啥意思、、、
2013-03-15 22:13
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
得分:5 
因为有回车...这帖子站里有...可以getchar() 或者scanf("敲一个空格%c", &XXXX);
2013-03-15 22:15
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
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
得分: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");                //这句后面加个getchar();
       if((letter = getchar())  == 'h')
           printf("Thursday");
       else if((letter = getchar())  == 'u')
           printf("Tuesday");
       else
           printf("error input");
      }
      else if(x == 's')
      {
       printf("请再输入第二个字母:\n");                  // 这句后面在加个getchar();
      
       if((letter = getchar()) == 'u')
           printf("sunday");
       if((letter = getchar()) == 'u')                  
           printf("saturday");
       else
           printf("error input");
    }
      else
          printf("error input");

}

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-03-15 22:22
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.013735 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved