琴长不过时光 发表于 2020-5-3 18:23:16

小白求助 cin输入的问题

#include "iostream"
using std::endl;
using std::cout;
using std::cin;
using std::string;

class Student
{
private:
        int num;
        string name;
        char sex;
public:
        void getValue()
        {
                cout << "请输入学号:";
                cin >> num;
                cout << "请输入姓名:";
                cin >> name;
                cout << "请输入性别:";
                cin >> sex;
        }
public:
        void show()
        {
                cout << this->num << " " << this->name << " " << this->sex << endl;
        }
};

class Student01 :public Student
{
private:
        int age;
        string addr;
public:
        void getValue1()
        {
                cout << "请输入年龄:";
                cin >> age;
                cout << "请输入地址:";
                cin >> addr;
        }
public:
        void show1()
        {
                cout << this->age << " " << this->addr << endl;
        }
};

void main()
{
        Student01 st1;
        st1.getValue();
        st1.show();

        st1.getValue1();
        st1.show1();

        system("pause");
}

琴长不过时光 发表于 2020-5-3 18:26:22

问题描述:执行完第一个类的cin输入后 没有啊执行第二个类的输入 然后直接打印

永恒的蓝色梦想 发表于 2020-5-3 18:58:24

琴长不过时光 发表于 2020-5-3 18:26
问题描述:执行完第一个类的cin输入后 没有啊执行第二个类的输入 然后直接打印

我觉得你图片贴错了
而且你的图片上还有你的个人信息

琴长不过时光 发表于 2020-5-3 20:33:31

永恒的蓝色梦想 发表于 2020-5-3 18:58
我觉得你图片贴错了
而且你的图片上还有你的个人信息

图片应该没错就是 父类函数 一个cin子类函数一个cin 父类的cin执行完了 直接打印 不执行子类函数里的cin这是怎么一回事要是图片不行的话 明天我再弄个新的代码和照片

琴长不过时光 发表于 2020-5-3 20:34:21

#include "iostream"
using std::endl;
using std::cin;
using std::cout;
using std::string;

class Student
{
private:
        int num;
        string name;
        char sex;
public:
        void getValue()
        {
                cout << "请输入3个数据\n";
                cin >> num >> name >> sex;
        }
public:
        void show()
        {
                cout << "Student num:" << this->num << endl;
                cout << "Student name:" << this->name << endl;
                cout << "Student sex:" << this->sex << endl;
        }
};

class Student1 :public Student
{
private:
        int age;
        string addr;
public:
        void getValue1()
        {
                cout << "请输入2个数据\n";
                cin >> age >> addr;
        }
public:
        void show1()
        {
                cout << "Student1 age:" << age << endl;
                cout << "Student1 addr:" << addr << endl;
        }
};

void main()
{
        Student1 st;
        st.getValue();//调用基类公有成员函数,输入基类中3个数据的值
        st.getValue1();//调用派生类公有成员函数,输入派生类2个数据的值

        st.show();//调用基类公有成员函数,输出基类中3个数据的值
        st.show1();//调用派生类公有成员函数,输出派生类中2个数据的值
        system("pause");
}

永恒的蓝色梦想 发表于 2020-5-3 20:34:28

琴长不过时光 发表于 2020-5-3 20:33
图片应该没错就是 父类函数 一个cin子类函数一个cin 父类的cin执行完了 直接打印 不执行子类函数里的 ...

我没想明白图片上的请输入三个数据是哪来的

琴长不过时光 发表于 2020-5-5 16:52:34

永恒的蓝色梦想 发表于 2020-5-3 20:34
我没想明白图片上的请输入三个数据是哪来的

数据是前面类里的 private修饰的

永恒的蓝色梦想 发表于 2020-5-5 17:01:04

琴长不过时光 发表于 2020-5-5 16:52
数据是前面类里的 private修饰的

我说那几个字哪来的

害羞的新手 发表于 2020-5-5 21:13:49

是不是忘了敲回车了
直接空格输入了
还有你图片和代码不一致啊,图片最后一行的字代码里根本没有啊

superbe 发表于 2020-5-6 12:08:45

sex字段是char类型的,放不下一个汉字,如果性别只输入一个英文字符就没问题。
可以把sex字段改成string类型。或者改成char数组,比如char sex;

琴长不过时光 发表于 2020-5-6 12:22:35

superbe 发表于 2020-5-6 12:08
sex字段是char类型的,放不下一个汉字,如果性别只输入一个英文字符就没问题。
可以把sex字段改成string类 ...

知道了 谢谢大佬 我再试试

琴长不过时光 发表于 2020-5-6 12:32:34

superbe 发表于 2020-5-6 12:08
sex字段是char类型的,放不下一个汉字,如果性别只输入一个英文字符就没问题。
可以把sex字段改成string类 ...

对的 大佬 改成 string类型 就正常了
页: [1]
查看完整版本: 小白求助 cin输入的问题