读书人

重载输出流操作符lt;lt;后和预想中的结果有

发布时间: 2012-09-18 16:21:42 作者: rapoo

重载输出流操作符<<后和预想中的结果有差异
第一次来这个论坛所以没有多少分请见谅

C/C++ code
#include <functional>#include <string>#include <algorithm>#include <iostream>#include <vector>#include <iterator>#include <iomanip>using namespace std;class Student{public:    string name;    int grade;    Student(string name1,int grade1)    {        name=name1;        grade=grade1;    }    //bool operator<(const Student &s) const    //{    //    return grade<s.grade;    //}    friend ostream& operator<<(ostream& os,const Student &s);};ostream & operator<<(ostream & os,const Student &s){    os<<s.name<<'\t'<<s.grade<<'\n';    return os;}void main(){    Student s1("zhangsan",60);    Student s2("lisi",80);    Student s3("wangwu",70);    Student s4("zhaoliu",90);    Student s5("12313",20);    cout<<s1<<endl;    cout<<s2<<endl;    cout<<s3<<endl;    cout<<s4<<endl;    cout<<s5<<endl;    system("pause");}

显示结果是:

zhangsan 60

lisi 80

wangwu 70

zhaoliu 90

12313 20

请按任意键继续. . .


和想象中的不同
zhangsan 60

lisi 80

wangwu 70

zhaoliu 90

12313 20

请按任意键继续. . .

求解原因

[解决办法]
\t是按照8位一缩进,而不是你输入了\t就会有8个空格。

读书人网 >C++

热点推荐