#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
struct S
{int num;
string name;
char sex;
char job;
union
{int grade;
char position[10];
}category;
}person[2];
int main()
{ int i;
for(i=0;i<2;i++)
{cin>>person[i].num>>person[i].name>>person[i].sex>>person[i].job;
if(person[i].job=='s') cin>>person[i].category.grade;
else if (person[i].job=='t') cin>>person[i].category.position;
else cout<<"input error!";
}
cout<<endl<<"No. Name sex job grade/position"<<endl;
for(i=0;i<2;i++)
{if (person[i].job=='s')
cout<<person[i].num<<setw(6)<<person[i].name<<" "<<person[i].sex
<<" "<<person[i].job<<setw(10)<<person[i].category.grade<<endl;
else
cout<<person[i].num<<setw(6)<<person[i].name<<" "<<person[i].sex
<<" "<<person[i].job<<setw(10)<<person[i].category.position<<endl;
}
return 0;
}
我开追踪检测的时候,发现共用体的实际情况跟定义的都不一样的,你看看那个图片——是追踪的过程的值,我们可以发现person[0].category.grade跟person[1].category.position都存在,但共用体的定义不是说只能存在一种吗,同一个空间不可能同时存在两个数据吧,,这里搞不明啊,请高手指点下!!
FFIVE
弑天下
至尊宝的传说
相关分类