| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10026 人关注过本帖
标题:请教如何输入单个字符?
只看楼主 加入收藏
Linux_MD
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-8-3
收藏
 问题点数:0 回复次数:10 
请教如何输入单个字符?
#include <stdio.h>
void main()
{
    int i;
    char  en;
    for (i=0;i<10;i++)
   {
      printf("Input:");
      en=getchar();
      switch(en)
     {
         case 'a':
             printf("a\n");
             break;
         case 'b':
             printf("b\n");
             break;
         default:
             printf("other!\n");
             break;
     }
  }
}

在这段代码中
不管是输入a,还是b
最后的输出总是(比如a)
Input:a
a
Input:other!
多了个Input:other!
我想好像是输入a回车后  程序将回车处理为一个空字符去了
照这样的理解  输入了9个字母  也就结束了10次循环  实际也是如此   最后都多了个空字符     不知道这个问题该如何解决呢?

先谢谢哈。。。。
搜索更多相关主题的帖子: 输入 字符 
2009-07-21 19:33
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
#include <stdio.h>
int main()
{
    int i;
    char  en;
    for (i=0;i<10;i++)
   {
      printf("Input:");
      en=getchar();
      getchar();
      switch(en)
     {
         case 'a':
             printf("a\n");
             break;
         case 'b':
             printf("b\n");
             break;
         default:
             printf("other!\n");
             break;
     }
  }
}

[[it] 本帖最后由 soky 于 2009-7-21 19:53 编辑 [/it]]
2009-07-21 19:52
Linux_MD
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-8-3
收藏
得分:0 
呃。。。。  
多谢多谢。。。。
   那可否再请问下  除了这种思路还有别的方法没呢?
2009-07-21 20:06
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
你要的思路是什么?你的语句是switch,如果要改,语句也要改了,当然不是绝对,我也刚初学c
2009-07-21 20:16
Linux_MD
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-8-3
收藏
得分:0 
呃。。。。差不多了
呵呵   谢谢你哈!!!
2009-07-21 20:29
heqinwu8
Rank: 2
来 自:黄土高坡
等 级:论坛游民
帖 子:65
专家分:58
注 册:2009-7-11
收藏
得分:0 
把en=getchar();改为scanf("%s",&en);就可以了
不过不明白是什么原理,兄弟一定要教教我啊

戒烟真难啊,去楼顶抽个,没人发现
2009-07-21 21:35
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
以下是引用heqinwu8在2009-7-21 21:35的发言:

把en=getchar();改为scanf("%s",&en);就可以了
不过不明白是什么原理,兄弟一定要教教我啊

你扫描给en的是字符串,所以就没事了
2009-07-21 21:37
heqinwu8
Rank: 2
来 自:黄土高坡
等 级:论坛游民
帖 子:65
专家分:58
注 册:2009-7-11
收藏
得分:0 
以下是引用soky在2009-7-21 21:37的发言:


你扫描给en的是字符串,所以就没事了



也就是说'\n'也算在字符串里了吧?
2009-07-21 21:45
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
是的。但是在判断的时候,自动忽略了'\n'
2009-07-21 21:51
xiaogu149162
Rank: 2
等 级:论坛游民
帖 子:47
专家分:97
注 册:2009-7-16
收藏
得分:0 
#include <stdio.h>
void main()
{
    int i;
    char  en;
    for (i=0;i<10;i++)
   {
      printf("Input:"); scanf("%c",&en);/*此时为字符*/
    /*  en=getchar();此时为字符串
      getchar();  */
      switch(en)
     {
         case 'a':
             printf("a\n");
             break;
         case 'b':
             printf("b\n");
             break;
         default:
             printf("other!\n");
             break;
     }
  }
}
2009-07-21 23:36
快速回复:请教如何输入单个字符?
数据加载中...
 
   



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

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