0

我有一个名为 Grades.txt 的文件,上面有一些文本和整数行,我想将其读入我创建的已定义的名为 Assignment 的类中。

int main()
{
  ifstream input_file("grades.txt");
  Assignment assignment;

  input_file >> assignment;
  return 0;
}

以上是将 input_file 读入创建的类分配的主要功能。

friend istream& operator >> (istream& is, Assignment& assignment)
  { // function to read in data to class variables                                      
    string line;
    getline(*****, line);

    // to be able to operate on strings                                                 
    istringstream iss(line);

    // set values read in from input file.                                              
    iss >> assignment.Assignment_type;
    iss >> assignment.Date;
    iss >> assignment.Max_score;
    iss >> assignment.Actual_score;
    // sometimes Assignment Name will have spaces, have to use getline()                
    getline(is, assignment.Assignment_name);
    return is;
  }

这是类函数,它将重载 >> 运算符以读入赋值中的每个变量。这群星星是我遇到的问题,我不知道要传递给它什么。我试过 ifstream 和 ofstream 认为这很容易,但它们返回相同的错误代码

P01.cpp:34:21: error: expected primary-expression before ‘,’ token
4

1 回答 1

0

我猜,你>>class Assignment. 仅将其声明为朋友,但将定义放在某处:它不是Assignment. 该错误告诉您 Operator>>在定义为成员时仅采用一个参数(正确的操作数,因为链接是this)。作为“命名空间”或全局函数,它接受两个参数:链接和权限。

于 2013-09-27T23:02:14.990 回答