From d37f229f179cd84f17bd96beabdeba6dba7924de Mon Sep 17 00:00:00 2001 From: andrbl <andrbl@stud.ntnu.no> Date: Thu, 7 Apr 2022 11:51:21 +0200 Subject: [PATCH] La til: lesfraFil() funk. skrivTilFil() funk. i Baneklassen i filene bane.h og bane.cpp. --- bane.cpp | 40 +++++++++++++++++++++++++++++++++------- bane.h | 5 +++++ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/bane.cpp b/bane.cpp index 1d8cba3..c63b1c2 100644 --- a/bane.cpp +++ b/bane.cpp @@ -3,22 +3,21 @@ using namespace std; Bane::Bane() : Rute() { - lesData(); + //lesData(); } Bane::~Bane() { - } void Bane::lesData() { antallVogner = lesInt("Antall vogner", MIN_ANTALL_VOGNER, MAX_ANTALL_VOGNER); baneLengde = lesInt("Banelengde", MIN_BANELENGDE, MAX_BANELENGDE); - } void Bane::skrivData() { - cout << "\nAntall vogner: " << antallVogner << '\n' - << "Banelengde: " << baneLengde; + cout << "\n\t..::Bane info::.." << '\n'; + cout << "\n\tAntall vogner: " << antallVogner << '\n' + << "\tBanelengde: " << baneLengde; } void Bane::skrivType() { @@ -26,13 +25,40 @@ void Bane::skrivType() { } void Bane::skrivDataForlengs() { - skrivType(); skrivData(); Rute::skrivDataForlengs(); + cout << "\n\n"; } void Bane::skrivDataBaklengs() { - skrivType(); skrivData(); Rute::skrivDataBaklengs(); + cout << "\n\n"; +} + +void Bane::lesFraFil(ifstream& inn) { + int i = 0; + string heleLinjen = ""; + getline(inn, heleLinjen); + vector<string> linjenSplittet = hjelp.splittStreng('*', heleLinjen); + for (const auto& val : linjenSplittet) { + switch (i) { + case 0: + antallVogner = stoi(val); + break; + case 1: + baneLengde = stoi(val); + break; + } + i++; + } + Rute::lesFraFil(inn); +} + +void Bane::skrivTilFil(ofstream& ut) { + ut << "Bane" << '\n' + << antallVogner << '*' + << baneLengde << '*' + << '\n'; + Rute::skrivTilFil(ut); } \ No newline at end of file diff --git a/bane.h b/bane.h index e56efb2..93012a9 100644 --- a/bane.h +++ b/bane.h @@ -2,15 +2,18 @@ #define __BANE_H #include <iostream> +#include <fstream> #include "konstanter.h" #include "lesData3.h" #include "rute.h" +#include "hjelpeFunksjoner.h" class Bane : public Rute { private: int antallVogner; int baneLengde; + HjelpeFunksjoner hjelp; public: Bane(); @@ -20,6 +23,8 @@ class Bane : public Rute { void skrivType(); void skrivDataForlengs(); void skrivDataBaklengs(); + void lesFraFil(std::ifstream &inn); + void skrivTilFil(std::ofstream &ut); }; #endif // __BANE_H \ No newline at end of file -- GitLab