插入()运载符的重载

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>

using namespace std;
const int PoNum=2544;
const int QuNum=636;
class Point{
public:
        double x;
		double y;
		double z;
		double yita;

};
class Quad{
public:
        int p1;
		int p2;
		int p3;
		int p4;
};
//向量定义
typedef vector<Point>  Po_VECT;
typedef vector<Quad>  Qu_VECT;
//运算重定义
istream& operator>>(istream& is,Point& s){

    is>>s.x>>s.y>>s.z>>s.yita;
    return is;
}

ostream& operator<<(ostream& is,Point& s){

    is<<s.x<<"\t"<<"\t"<<s.y<<"\t"<<"\t"<<s.z<<"\t"<<"\t"<<s.yita<<"\n";
    return is;
}

istream& operator>>(istream& is,Quad& s){

    is>>s.p1>>s.p2>>s.p3>>s.p4;
    return is;
}

ostream& operator<<(ostream& is,Quad& s){

    is<<s.p1<<"\t"<<"\t"<<s.p2<<"\t"<<"\t"<<s.p3<<"\t"<<"\t"<<s.p4<<"\n";
    return is;
}

int main()
{
    Po_VECT Points;
    Qu_VECT Quads;
    char szBuf[200];
    ifstream in("13 00064.dat",ios::in);
    if(!in) return 0;
    Point p;
    Quad q;
    in.getline(szBuf,200);
    //in.getline(szBuf,200);
    for(int i=0;i<PoNum;i++){
        in>>p;
        Points.push_back(p);
        //cout<<p;
    }
    for(int i=0;i<QuNum;i++){
        in>>q;
        Quads.push_back(q);
        //cout<<q;
    }
    for(int i=0;i<PoNum;i++){
        p=Points.at(i);
        cout<<p;
    }
    for(int i=0;i<QuNum;i++){
        q=Quads.at(i);
        cout<<q;
    }
    in.close();
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章