テキストファイルから読み取り、Stateに属するクラスにデータを配置するために、ifstream演算子>>をオーバーロードしようとしています。
私が読んでいるファイルの形式は、[州名]>[州都]>[人口]です。状態の名前を配列に読み込みたいだけです。
演算子のオーバーロードに問題があります。私はそれをある程度理解し、ostreamを機能させることができましたが、読み取りはより困難であることが証明されています。
それが違いを生むかどうかはわかりませんが、これは学校の課題のためであり、私はまだそれに取り組んでいます。ここからどこへ行くのかわからない。
main.cpp
これは私のメインのCPPファイルです。
#include <iostream>
#include <string>
#include <fstream>
#include "State.h"
using namespace std;
int main(){
State s, h;
string null;
ifstream fin("states.txt");
while(fin.good())
{
fin >> h; //This doesn't read anything in.
fin >> null; //Dumping the Capital City to a null string
fin >> null; //Dumping the Population to a null string
}
cout << s; //Testing my overloaded << operator
system("pause");
return 0;
}
State.cpp
これはセカンダリCPPファイルです。
#include "State.h"
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int i = 0;
string name, x, y;
State::State()
{
arrayStates[50];
}
//Trying to overload the input from fstream
ifstream& operator >> (ifstream& in, State h)
{
for(i = 0; i < 21; i++)
{
in >> h.arrayStates[i];
}
return in;
}
ostream& operator << (ostream& out, State s)
{
for(int i = 0; i < 21; i++)
{
out << s.arrayStates[i] << endl;
}
return out;
}
State.h
これは私のクラスを含む私のヘッダーファイルです。
#include <iostream>
#include <string>
using namespace std;
class State{
private:
string arrayStates[50];
public:
State();
friend ostream& operator << (ostream& out, State s);
friend ifstream& operator >> (ifstream& in, State h);
};