C语言关于结构体的输入输出
输出最后的那个13612,0.....是什么鬼!?是怎么乱入的?#include<stdio.h>#include<conio.h>structdate{intyear;...
输出最后的 那个13612,0.....
是什么鬼!? 是怎么乱入的?
#include<stdio.h>
#include<conio.h>
struct date{
int year;
int month;
};
struct book{
int a;
char num[9];
struct date pub;
}b[3];
void input(struct book* p)
{
scanf("%d,%s,%d,%d",&p->a,p->num,&p->pub.year,&p->pub.month);
}
void main()
{
int i;
clrscr();
for(i=0;i<3;i++)
{
input(&b[i]);
}
for(i=0;i<3;i++)
{
printf("%d,%s,%d,%d\n",b[i].a,b[i].num,b[i].pub.year,b[i].pub.month);
}
} 展开
是什么鬼!? 是怎么乱入的?
#include<stdio.h>
#include<conio.h>
struct date{
int year;
int month;
};
struct book{
int a;
char num[9];
struct date pub;
}b[3];
void input(struct book* p)
{
scanf("%d,%s,%d,%d",&p->a,p->num,&p->pub.year,&p->pub.month);
}
void main()
{
int i;
clrscr();
for(i=0;i<3;i++)
{
input(&b[i]);
}
for(i=0;i<3;i++)
{
printf("%d,%s,%d,%d\n",b[i].a,b[i].num,b[i].pub.year,b[i].pub.month);
}
} 展开
展开全部
void input(struct book* p)
{
//scanf("%d,%s,%d,%d",&p->a,p->num,&p->pub.year,&p->pub.month);
//这里 char num[9];数组,按字符串输入 %s不能以逗号分隔,函数无法识别输入结束!
//改成:
scanf("%d %s %d %d",&p->a,p->num,&p->pub.year,&p->pub.month);
//输入以空格分格就可以了!
}
{
//scanf("%d,%s,%d,%d",&p->a,p->num,&p->pub.year,&p->pub.month);
//这里 char num[9];数组,按字符串输入 %s不能以逗号分隔,函数无法识别输入结束!
//改成:
scanf("%d %s %d %d",&p->a,p->num,&p->pub.year,&p->pub.month);
//输入以空格分格就可以了!
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题出在字符串输入上,在CSDN里有人给出了解决方法,把scanf中的%s换成%[^,]。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询