В основном я пытаюсь создать вектор объектов, но мне нужно создать объекты с информацией, считанной из файла, с помощью перегруженного оператора потока ввода для моего класса Voter.Как создать вектор объектов во время чтения из файла? [C++]
главная:
#include <cstdlib>
#include <vector>
#include <string>
#include "Voter.h"
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char** argv) {
int i = 0;
int idNumber;
string firstName;
string lastName;
string hasVoted;
vector<Voter> VoterVector;
ifstream inFile;
inFile.open("voters.txt");
if(!inFile){
cout << "Unable to open voters.txt" << endl;
}
inFile >> idNumber >> firstName >> lastName >> hasVoted;
while(inFile) {
Voter temp();
temp >> idNumber >> firstName >> lastName >> hasVoted;
VoterVector.push_back(temp);
inFile >> idNumber >> firstName >> lastName >> hasVoted;
}
return 0;
}
Избиратель Класс:
#ifndef VOTER_H
#define VOTER_H
#include <string>
using namespace std;
class Voter {
public:
Voter();
virtual ~Voter();
friend istream &operator>>(istream &in, Voter &v);
friend ostream &operator<<(ostream &out, Voter &v);
private:
int idNumber;
string firstName;
string lastName;
string hasVoted;
};
Voter::Voter() {
this->idNumber = 0;
this->firstName = '-none-';
this->lastName = '-none-';
this->hasVoted = 'FALSE';
}
Voter::~Voter() {
}
istream &operator>>(istream &in, Voter &v) {
in >> v.idNumber >> v.firstName >> v.lastName >> v.hasVoted;
return in;
}
ostream &operator<<(ostream &out, Voter &v) {
out << v.idNumber << endl << v.firstName << endl << v.lastName << endl << v.hasVoted << endl;
return out;
}
Я продолжаю получать ошибки с тем, как я создаю объекты и поместить их в вектор. Я уверен, что моя перегрузка и чтение из файла выполнены правильно, просто не уверен, что вы правильно настроили вектор объектов. Любая помощь приветствуется. Благодаря!
Это было бы: 'Избиратель темп; while (inFile >> temp) {VoterVector.push_back (temp); } '. – 0x499602D2
@ 0x499602D2: Я собираюсь начать _flagging_ ответы в комментариях. Вы, очевидно, не получаете сообщение. –
@LightningRacisinObrit Ой! Получил меня снова! лол – 0x499602D2