char sex;
只能输入一个字符,例如f、1之类的
把前两个类中的 char sex;
都改成 string sex;就可以了
围观
你的电话和工资这一项都没输入,打印出来的自然是随机值
而且,电话一般是11位,超出了int所能表示的范围,建议换成 string
#include
#include
using namespace std;
class teacher
{
public:
void setvalue();
void display();
protected:
string name;
int age;
char sex;
string addr;
int number;
string title;
};
void teacher::setvalue()
{
cout<<"姓名:"<
cout<<"年龄:"<
cout<<"性别:"<
cin.clear();
cout<<"地址:"<
cout<<"电话:"<
cout<<"职称:"<
}
void teacher::display()
{
cout<<"姓名:"<
class cadre
{
public:
void setvalue();
void display();
protected:
string name;
int age;
char sex;
string addr;
int number;
string post;
};
void cadre::setvalue()
{
cout<<"姓名:"<
cout<<"年龄:"<
cout<<"性别:"<
cout<<"地址:"<
cout<<"电话:"<
cout<<"职务:"<
}
void cadre::display()
{
cout<<"姓名:"<
class teacher_cadre:public teacher,public cadre
{
public:
void set();
void show();
private:
float wages;
};
void teacher_cadre::set()
{
teacher::setvalue();
cout<<"职位:"<
cout<<"工资:"<
}
void teacher_cadre::show()
{
teacher::display();
cout<<"职务:"<
int main()
{
teacher_cadre tc;
cout<<"请用户输入信息:"<
cout<<"显示的信息为:"<
return 0;
}
再输入性别的时候。因为是char型 缓冲区会留下一个回车符
所以清一下缓冲区然后再去读string就没问题了。就不会跳过去了。