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);
}
}
展开
 我来答
kaixingui2012
2015-05-21 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6212万
展开全部
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);
//输入以空格分格就可以了!
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5101b75
推荐于2018-05-04 · 超过30用户采纳过TA的回答
知道答主
回答量:142
采纳率:100%
帮助的人:38.2万
展开全部
问题出在字符串输入上,在CSDN里有人给出了解决方法,把scanf中的%s换成%[^,]。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式