请教一个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));
}