pracuju na semestrální práci a už jsem téměr na konci jen mám teď problém s ukládáním a načítáním dat ze souboru. Na začátku souboru bych potřeboval načíst do STL konterneru data a po ukončení je nahrát zase do souboru.
Děkuju za jakoukoliv pomoc
Kód: Vybrat vše
#include <iostream>
#include <vector>
#include <fstream>
#include "Priklad.h"
using namespace std;
void vypisHistorie(vector<Priklad* > & historiePrikladu);
void uvolniPamet(vector<Priklad* > & historiePrikladu);
void nacteniHistorieZeSouboru(vector<Priklad* > & historiePriklad);
void ulozeniHistorieDoSouboru(vector<Priklad* > & historiePriklad);
int main() {
char operand;
vector<Priklad* > historiePrikladu;
//void nacteniHistorieZeSouboru(historiePrikladu);
cout << "Vyber operaci: ";
cin.get(operand);
while (!(operand == 'e')) {
int op1, op2, cislo;
switch (operand) {
case '+':
cout << "Zadej prni operand: ";
cin >> op1;
cout << "Zadej druhy operand: ";
cin >> op2;
historiePrikladu.push_back(new Soucet(op1, op2));
break;
case '-':
cout << "Zadej prni operand: ";
cin >> op1;
cout << "Zadej druhy operand: ";
cin >> op2;
historiePrikladu.push_back(new Rozdil(op1, op2));
break;
case '*':
int op1, op2;
cout << "Zadej prni operand: ";
cin >> op1;
cout << "Zadej druhy operand: ";
cin >> op2;
historiePrikladu.push_back(new Nasobeni(op1, op2));
break;
case '/':
cout << "Zadej delenec: ";
cin >> op1;
cout << "Zadej delitel: ";
cin >> op2;
historiePrikladu.push_back(new Deleni(op1, op2));
break;
case 'o':
cout << "Zadej cislo ktere chces odmocnit: ";
cin >> cislo;
historiePrikladu.push_back(new DruhaOdmocnina(cislo));
break;
case 'v':
//samostatna fce
vypisHistorie(historiePrikladu);
break;
}
cout << "Vyber operaci: ";
cin.get(operand);
}
ulozeniHistorieDoSouboru(historiePrikladu);
//uvolneni pameti
uvolniPamet(historiePrikladu);
return 0;
}
void vypisHistorie(vector<Priklad* > & historiePrikladu) {
for (vector<Priklad* >::iterator it = historiePrikladu.begin(); it != historiePrikladu.end(); it++) {
(*it)->vypis();
}
}
void uvolniPamet(vector<Priklad *> & historiePrikladu) {
for (vector<Priklad* >::iterator it = historiePrikladu.begin(); it != historiePrikladu.end(); it++) {
delete *it;
}
}
void nacteniHistorieZeSouboru(vector<Priklad* > & historiePriklad)
{
}
void ulozeniHistorieDoSouboru(vector<Priklad* > & historiePriklad)
{
ofstream fout("historie.dat", ios::out | ios::app | ios::binary);
if (!fout.is_open())
{
cerr << "Soubor historie.dat nelze otevyit pro vystup:\n";
exit(1);
}
for(vector<Priklad* >::iterator it = historiePriklad.begin(); it != historiePriklad.end(); it++)
{
//fout.write(reinterpret_cast<char*> (*it), sizeof(*it));
}
}
