我正在尝试重载>>运算符,以将文件中的数据读取到对象中。
#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
因此,通过上述电话会议,我希望第一个饮食计划将玉米卷饼塞满。实际发生的是代码执行时没有放入任何内容。