2

我真的不知道为什么我会收到错误,但我又不太擅长这个,现在我只是想弄清楚为什么我无法打印出我的记录数组。认为任何人都能够指出我正确的方向吗?它还没有接近完成,所以它有点粗糙......

#include <iostream>
#include <fstream>
#include <string> 


using namespace std;

class student
{
private:
    int id, grade;
    string firstname, lastname;

public:
    student();
    student(int sid, string firstn, string lastn, int sgrade);
    void print(student* records, int size);
};

void main()
{
    string report="records.txt";
    int numr=0 , sid = 0,sgrade = 0;
    string firstn,lastn;

    student *records=new student[7];
    student stu;
    student();

    ifstream in;
    ofstream out;

    in.open(report);
    in>>numr;

    for(int i=0; i>7; i++)
    {
        in>>sid>>firstn>>lastn>>sgrade;
        records[i]=student(sid, firstn,lastn,sgrade);
    }

    in.close();

    stu.print(records, numr);

    system("pause");
}

student::student()
{
}

student::student(int sid, string firstn, string lastn, int sgrade)
{
    id=sid;
    firstname=firstn;
    lastname=lastn;
    grade=sgrade;

}

void student::print(student* records, int size)
{
    for(int i=0; i>7; i++)
        cout<<records[i]<< endl;
}
4

1 回答 1

8

与 Java 等语言不同,C++ 不提供默认的打印方式。为了使用cout你必须做两件事之一:

  1. 提供对可打印内容的隐式转换(不要这样做)
  2. 像这样重载 << 运算符:

    ostream& operator <<(ostream& str, const student& printable){
        //Do stuff using the printable student and str to print and format
        //various pieces of the student object
        return str;
        //return the stream to allow chaining, str << obj1 << obj2
    }
    
于 2012-12-05T05:53:50.283 回答