c++類中重載輸出和輸入符號的時候如何處理枚舉數據

#ifndef STUDENT_H
#define STUDENT_H

#include <iostream>
#include <string>
enum SCI{English,Maths,Chinese,no};
class student
{
public:
        student(){science = English;scold =0.0;std::cout << "這是不帶參數的" << std::endl ;};

        friend std::istream& operator>>(std::istream& ,  student&);
        friend std:stream& operator<<(std:stream& , const student&);
        ~student(){};
private:        std::string  snumber;   //學號        SCI  science;           //學科        double   scold;         //分數inline std::istream& operator >> ( std::istream& in,  student& rhs){        std:: string  i;        in >> rhs.snumber>> i >> rhs.scold ;        if(in)        {                 if(i == " Chinese")                        rhs.science = Chinese;                if(i == "Maths")                        rhs.science = Maths;                if (i == "Englishi")                        rhs.science = English;                else rhs.science = no;        }        return in;        }inline std:stream& operator << (std:stream& out , const student& lhs){    out  << lhs.snumber << "\t" << lhs.scold << "\t ";        switch(lhs.science)        {        case English : std::cout << " English" << std::endl ;  break;        case Maths :   std::cout << " Maths"  << std::endl ;  break;        case Chinese: std::cout << " Chinese" << std::endl;  break;   //枚舉型輸出        default :break;        }        return out;}
#endif;
student s1;        cin >> s1 ;       cout << s2 ;}
結果科目的輸出項沒有,我估計是枚舉數據那出錯了,誰幫我看下。還有這個程序我在VC++6.0中運行沒有錯誤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章