| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:关于scanf
只看楼主 加入收藏
pq0123
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2015-3-14
收藏
 问题点数:0 回复次数:4 
关于scanf
#include<stdio.h>
int main()
{
    float a;
    int i;

    i=scanf("%f",&a);
    if(i!=1)
    {
        printf("Please enter again like 22.4:");
        scanf("%f",&a);   

    }
   
    printf("%f",a);

    return 0;
}
请问第二个scanf不能实现
就是说我第一个输入一串字母的时候 我需要第二个scanf来输入一个数字
搜索更多相关主题的帖子: return 字母 
2015-03-27 23:21
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
能够执行,但你却没有机会输入.

代码测试环境:  WinXP+C-Free5.0.
2015-03-27 23:26
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
#include<stdio.h>

int main(void) {
    float a = 0;
    int i = 0;
    i = scanf("%f", &a);

    while(getchar() != '\n') continue;

    if(i != 1) {
        printf("Please enter again like 22.4: ");
        scanf("%f", &a);
    }

    printf("%f\n", a);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-27 23:27
pq0123
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2015-3-14
收藏
得分:0 
回复 2楼 vvvcuu
为什么会没有机会输入呢
2015-03-28 18:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我感觉应该这么写

程序代码:
#include <stdio.h>

int main(void)
{
    float a;
    int i = 1;
    do
    {
        if (i != 1)
            printf("Please enter again like 22.4:");
        i = scanf("%f", &a);
        getchar();

    } while(i != 1);

    printf("Finally, %f\n", a);

    return 0;
}


我改了逻辑 我感觉这样比较好

知识点是 你用了scanf()后肯定要回车 这个回车也算输入 所以需要用getchar()读取这个输入 这样就能正常运行了

我感觉这个挺恶心的
2015-03-28 20:07
快速回复:关于scanf
数据加载中...
 
   



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

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