| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 491 人关注过本帖
标题:一个关于菜单的题目
只看楼主 加入收藏
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
结帖率:87.8%
收藏
已结贴  问题点数:15 回复次数:8 
一个关于菜单的题目
#include<stdio.h>
char input();
char ppp();//去除换行符的影响
void count();
int kk();
int main()
{
    int shu;
    while((shu=input())!='q')
    {
        switch(shu)
        {
        case 'a': printf("buy low,sell high.\n");
        break;
        case 'b': putchar('\a');
        break;
        case 'c': count();
        break;
        default: printf("error\n");
        break;
             }
    }
    return 0;
    }

    char input()
    {
        int ch;
        printf("enter numerejh fjk\n");
        printf("a.advice      b.'shengy'\n");
        printf("c.count       d.oijj\n");
        ch=ppp();
        while((ch<'a'||ch>'c')&&ch!='q')
        {
            printf("a,b,or q\n ");
            ch=ppp();
        }
        return ch;
    }

    char ppp()
    {
        char hh;
        hh=getchar();
        while(getchar()!='\n')
        continue;
        return hh;
    }

void count()
{
    int i,n;
    printf("enter number:");
    n= kk();
    for(i=1;i<=n;i++)
        printf("%d\n",i);
    while(getchar!='\n')
        continue;
}
int kk()
{
    int input;
    char ch;
    while(scanf("%d",&input)!=1)
    {
        while((ch=getchar())!='\n')
            putchar(ch);
        printf("is not an integer.\nplease enter an");
        printf("integer value.such as 25,-178,or 3:");
    }
    return input;
}

当你输入c后enter再随便输入一个数字enter,再然后就不能输入了,我设计的是可以输入的请各位大亨帮我 找找原因
搜索更多相关主题的帖子: default include return 换行符 
2013-07-07 10:19
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
请注意清除缓冲区!程序没仔细看,应该是这个问题
2013-07-07 11:16
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
清除输入缓冲区
2013-07-07 11:16
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
用getchar();
2013-07-07 11:17
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
count函数里面有错误,编译不通过,话说你的编译器可以通过么?换编译器吧


[fly]存在即是合理[/fly]
2013-07-07 11:21
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
以下是引用azzbcc在2013-7-7 11:21:57的发言:

count函数里面有错误,编译不通过,话说你的编译器可以通过么?换编译器吧

他说的是输入之后enter就不能继续输入了,我觉得是缓冲区的问题啊
2013-07-07 11:23
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
没有,他的缓冲区处理的很完善,我执行了一下,没有LZ所说的现象


[fly]存在即是合理[/fly]
2013-07-07 11:30
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
以下是引用azzbcc在2013-7-7 11:30:58的发言:

没有,他的缓冲区处理的很完善,我执行了一下,没有LZ所说的现象

我是根据他描述的来做的判断,程序没看
2013-07-07 11:57
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:15 
LZ的这个函数:
void count()
 {
     int i,n;
     printf("enter number:");
     n= kk();
     for(i=1;i<=n;i++)
         printf("%d\n",i);
     while(getchar!='\n')
         continue;
 }

应该改为:while(getchar()!='\n'),就可以编译了,其余的我想楼主还没有完善吧?

Edsger Dijkstra:算法+数据结构=程序
2013-07-07 12:39
快速回复:一个关于菜单的题目
数据加载中...
 
   



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

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