| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:关于C语言的程序运行中途输入
只看楼主 加入收藏
这人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
关于C语言的程序运行中途输入
麻烦看一下,这个程序的当程序运行到请输入这一行为什么不会停下来。
新人学习。恳求大家的帮助,真心的。没人带的话,开始心里有太多的问题。
#include<stdio.h>
int main()
{

    int a,b,c;
    char d;
    printf("please input a number\n");
        scanf("%d",&a);
    printf("your input is:%d\n",a);
    printf("请输入‘y’or'n'\n");
    scanf("%c",&d);     
    printf("%d\n",a);

}
搜索更多相关主题的帖子: please number C语言 
2015-11-15 13:16
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:10 
程序代码:
int main(int argc, char** argv)
{
    int a, b, c;
    char d;
    printf("please input a number\n");
    scanf("%d", &a);
    printf("your input is:%d\n", a);
    printf("请输入‘y’or'n'\n");
    scanf(" %c", &d);    注意这一句,在%c的前面加一个空格。这样可以消除缓冲区中的回车键
    printf("%d\n", a);

    return (EXIT_SUCCESS);
}
2015-11-15 13:38
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
也可以这样:
程序代码:
int a, b, c;
    char d;
    printf("please input a number\n");
    scanf("%d", &a);
    printf("your input is:%d\n", a);
    printf("请输入‘y’or'n'\n");
    getchar();        在这里加上这一句,从缓冲区中读取一个字符
    scanf("%c", &d);
    printf("%d\n", a);

    return (EXIT_SUCCESS);

2015-11-15 13:39
这人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-15
收藏
得分:0 
回复 2楼 八画小子
您好,但是我感觉我的句子的逻辑上面没有任何问题。您说的那个缓冲区的那个回车是什么意思。
2015-11-15 13:46
这人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-15
收藏
得分:0 
回复 3楼 八画小子
还有您的第二种方法,如果我后面是输入一个数字,不是一个字母。那getchar()就不能用了,怎么办。
2015-11-15 13:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
你的终极目的是什么

DO IT YOURSELF !
2015-11-15 13:48
这人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-15
收藏
得分:0 
回复 6楼 wp231957
就是想明白,为什么这个中途输入,用我的方法实现不了,真正的原因是什么。
2015-11-15 13:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
真正原因就是缓冲区里多了一个回车符

DO IT YOURSELF !
2015-11-15 13:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
int main(void)
{
    int a;
    char c[100]={'\0'};
    scanf("%d",&a);
    fflush(stdin);
    scanf("%s",c);
    printf("%s  %d  \n",c,a);
    return 0;   
}

DO IT YOURSELF !
2015-11-15 13:58
这人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-15
收藏
得分:0 
回复 9楼 wp231957
谢谢。您的意思,我有点明白了,好像是在于我那个回车键的按下。但是具体的还是有点不明白。继续学习下去看能不能解决。
2015-11-15 16:19
快速回复:关于C语言的程序运行中途输入
数据加载中...
 
   



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

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