结构体初始化用scanf

来源:百度知道 编辑:UC知道 时间:2024/05/29 00:32:31
#include"stdio.h"
void main()
{struct
{int num;
char name[10];
char sex;
char job;
union
{int banji;
char position[10];
}category;
}person[2];

int i;
for(i=0;i<2;i++)
{scanf("%d %s %c %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);
if(person[i].job=='t')
scanf("%s",&person[i].category.position);
else if(person[i].job=='s')
scanf("%d",&person[i].category.banji);
else printf("input error!");
}

printf("\n");
printf("No Name sex job class/position\n");
for(i=0;i<2;i++)
{if(person[i].job=='s')
printf("%d %s %c %c %d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.banji);
else
printf("%d %s %c %c %s\n",person[i].num,perso

系统不知道以什么样式的分隔,就像让你读一篇不加标点的文章……肯定会有很多种版本……而系统需要的是唯一性!~

输入格式 "%d %s %c %c"中间有空格
则 输入 数据 之间 也要用 空格 隔开。

输入格式 "%d,%s,%c,%c"中间有逗号
则 输入 数据 之间 也要用 逗号 隔开。

如果没有空格,也没有逗号,则 输入 数据 之间 也 没有空格和逗号。
但新问题出现了,因为没有分隔符,输入时,计算机不知道怎么分段,就出错了。

对楼上 L_o_o_n_i_e的说法有质疑

有的时候不是这样的,它过不了我的编译器这一关

没有当然可以,只是那样你输入的时候就不知道自己输的什么了.