| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:字符输入问题,帮帮忙了
只看楼主 加入收藏
xiaoyi2010
该用户已被删除
收藏
已结贴  问题点数:2 回复次数:4 
字符输入问题,帮帮忙了
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 字符 输入 
2010-04-29 10:42
ghc87
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2010-3-24
收藏
得分:1 
当输入a然后回车,程序将回车也当做一个字符输入,所以循环两次,多一行please input a char:
修改为
int main()
{
    char a;
    do
    {
        printf("\nplease input a char:");
        scanf("%c",&a);
        getchar();
    }while(a!='y');
    printf("\nthe input char is %c",a);
    return 0;
}
2010-04-29 11:09
gyx8899
Rank: 2
等 级:论坛游民
帖 子:56
专家分:91
注 册:2010-2-2
收藏
得分:1 
#include<stdio.h>/*输入一个字符,如果不等于y的话,一直输入*/
int main()
{
    char a;
    do
    {
        printf("\nplease input a char:");
        fflush(stdin);//读完一个字符串后紧接着又要读取一个字符,清空输入缓冲区
        scanf("%c",&a);
    }while(a!='y');
    printf("\nthe input char is %c",a);
    return 0;
}
    fflush(stdin) ;
  清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)
  详细解释一下:
  /*stdin就是标准输入 std即standard,in即输入,合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。 */
  函数名: fflush
  功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
  原型:int fflush(FILE *stream)
2010-04-29 13:23
xiaoyi2010
该用户已被删除
收藏
得分:0 
回复 2楼 ghc87
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-04 22:10
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
getchar()就是用来吸收你输入A后的回车键scanf("%c%*c",&a);这样也是可以的 效果跟GETCHAR()一样
2010-05-04 22:18
快速回复:字符输入问题,帮帮忙了
数据加载中...
 
   



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

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