Я борюсь с чтением из двоичного файла.
Мой двоичный файл состоит из записей таким образом:
строка - 5 х целых чисел
Первая строка имеет разную длину, так что я думаю, это может быть моей проблемой?
Я пытаюсь прочитать запись в классе, который имеет атрибуты того же типа:
class Team
{
private:
string teamName;
int matchesPlayed;
int gamesWon;
int gamesLost;
int pointsWon;
int pointsLost;
public:
Team(string ="",int = 0,int = 0, int = 0, int = 0, int = 0);
~Team();
//void operator<();
void setTeamName(string);
void setMatchesPlayed(int);
void setGamesWon(int);
void setGamesLost(int);
void setPointsLost(int);
void setPointsWon(int);
void print();
};
Я пытаюсь читать из другого класса:
Table::Table()
{
Team t1;
teams.push_back(t1);
ifstream inputFile;
inputFile.open("tabletennis.dta", ios::in | ios::binary);
if(!inputFile)
{
cout << "Datei konnte nicht geoeffnet werden!";
exit(1);
}
if(inputFile.good())
inputFile.read(reinterpret_cast<char*> (&t1), sizeof(Team));
t1.print();
}
Team :: print () просто распечатывает содержимое своих атрибутов. Но программа вылетает, когда я пытаюсь напечатать строку.
Я не знаю, что я могу понять неправильно ... но я подумал:
Чтение в объект с таким же количеством и типом атрибутов, как способ чтения набора записей:
Team::Team(string teamName, int matchesPlayed, int gamesWon, int gamesLost, int pointsWon, int pointsLost)
{
setTeamName(teamName);
setMatchesPlayed(matchesPlayed);
setGamesWon(gamesWon);
setGamesLost(gamesLost);
setPointsWon(pointsWon);
setPointsLost(pointsLost);
}
Пока не знаю ..