c++ 我的程序哪里出错了,请求高手指教

2025-05-16 13:29:26
推荐回答(4个)
回答(1):

char sex;
只能输入一个字符,例如f、1之类的
把前两个类中的 char sex;
都改成 string sex;就可以了

回答(2):

围观

回答(3):

你的电话和工资这一项都没输入,打印出来的自然是随机值
而且,电话一般是11位,超出了int所能表示的范围,建议换成 string

回答(4):

#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<<"姓名:"< cin>>name;
cout<<"年龄:"< cin>>age;
cout<<"性别:"< cin >> sex;
cin.clear();
cout<<"地址:"< cin>>addr;
cout<<"电话:"< cin>>number;
cout<<"职称:"< cin>>title;
}
void teacher::display()
{
cout<<"姓名:"< cout<<"年龄:"< cout<<"性别:"< cout<<"地址:"< cout<<"电话:"< 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<<"姓名:"< cin>>name;
cout<<"年龄:"< cin>>age;
cout<<"性别:"< cin>>sex;
cout<<"地址:"< cin>>addr;
cout<<"电话:"< cin>>number;
cout<<"职务:"< cin>>post;
}
void cadre::display()
{
cout<<"姓名:"< cout<<"年龄:"< cout<<"性别:"< cout<<"地址:"< cout<<"电话:"< cout<<"职务:"<}
class teacher_cadre:public teacher,public cadre
{
public:
void set();
void show();
private:
float wages;

};
void teacher_cadre::set()
{
teacher::setvalue();
cout<<"职位:"< cin>>post;
cout<<"工资:"< cin>>wages;
}

void teacher_cadre::show()
{
teacher::display();
cout<<"职务:"< cout<<"工资:"<}
int main()
{
teacher_cadre tc;
cout<<"请用户输入信息:"< tc.set();
cout<<"显示的信息为:"< tc.show();

return 0;
}
再输入性别的时候。因为是char型 缓冲区会留下一个回车符
所以清一下缓冲区然后再去读string就没问题了。就不会跳过去了。