重载>>运算符以从文件读取

时间:2019-06-17 16:03:12

标签: c++

我正在尝试重载>>运算符,以将文件中的数据读取到对象中。

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;

class DietPlan
{
public:
void setGoal(int newGoal) { goal = newGoal; }
void setName(string newName) { name = newName; }
void setDate(string newDate) { date = newDate; }

friend istream& operator >> (istream& in, DietPlan D) {
    string line;

    getline(in, line);
    D.setName(line);

    getline(in, line);
    D.setGoal(atoi(line.c_str()));

    getline(in, line);
    D.setDate(line);

    getline(in, line);

    return in;
}

private:
    int goal;
    string name;
    string date;
};

在这里打电话:

#include "DietPlan.h"

int main()
{
    ifstream dietPlansIn("dietPlans.txt");
    DietPlan taco;

    dietPlansIn >> taco;
}

dietPlans.txt存储格式化的数据:

name - string
goal - int
date - string

因此,通过上述电话会议,我希望第一个饮食计划将玉米卷饼塞满。实际发生的是代码执行时没有放入任何内容。

0 个答案:

没有答案