| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:请教一个scanf输入问题
只看楼主 加入收藏
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:5 
请教一个scanf输入问题
为什么scanf("%d_%d_%d_",&a,&b,&c);要输入4个数后才算输入结束啊  输入1_2_3_不能结束呢?(注:_表示空格符);


举列代码:
#include<stdio.h>
struct day
{
    int year;
    int month;
    int days;
}dat;
int data[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{000,31,29,31,30,31,30,31,31,30,31,30,31}};
int day(int year,int month,int days)
{
    int leap,i,*p;
    if((year%4==0 && year%100!=0)||(year%400==0))
        leap=1;
    else
        leap=0;
    p=*(data+leap);
    for(i=0;i<month;i++)
        days+=*(p+i);
    return days;
}
void main()
{
    struct day dat;
    printf("请您输入年月日:\n");
    while(1)
    {
        scanf("%d %d %d ",&dat.year,&dat.month,&dat.days);//问题在这
        if(dat.month>0&&dat.month<12&&dat.days>0&&dat.days<365)
            break;
        else
            printf("您输入的数据不对请重新输入:\n");
    }
    printf("您输入的这个时间为%d的%d月%d日的第%d天:\n",dat.year,dat.month,dat.days,day(dat.year,dat.month,dat.days));
}
搜索更多相关主题的帖子: scanf 输入 
2010-06-20 20:13
yunfeishizhe
Rank: 2
等 级:论坛游民
帖 子:40
专家分:54
注 册:2010-4-3
收藏
得分:5 
格式的最后一个%d后面多了一个空格
2010-06-20 20:37
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 2楼 yunfeishizhe
是啊,我问的就是这问题啊,为什么多个空格就要输入四个数,输入所有的数最后再加上个空格就不能结束啊??
2010-06-20 20:39
yunfeishizhe
Rank: 2
等 级:论坛游民
帖 子:40
专家分:54
注 册:2010-4-3
收藏
得分:5 
这个我也不太懂
2010-06-20 20:51
yunfeishizhe
Rank: 2
等 级:论坛游民
帖 子:40
专家分:54
注 册:2010-4-3
收藏
得分:10 
这是我找的答案,用空白符结尾时,scanf会跳过空白符去读下一个字符,所以你必须再输入一个数。这里的空白符包括空格,制表符,换行符,回车符和换页符。所以如果你用scanf("%d  ",&a)会出现问题。
2010-06-20 20:53
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
还是不懂,这我网上也找到过 就是搞不明白,这可能跟内存存储和缓存有关吧,反正自己搞不明白啊,等高手来帮我吧 呵呵
2010-06-20 22:03
快速回复:请教一个scanf输入问题
数据加载中...
 
   



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

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