Zaznajamiam się z biblioteką fstream. Napisałem taki kod:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
void blad_numeru(void);
void blad_braku(void);
int main()
{
vector <string> ksiazki;
char wybor;
bool koniec=0;
int nr_ksiazki;
string nazwa_ksiazki;
do
{
cout << "---MENU---" << endl << endl;
cout << "1. Dodaj ksiazke." << endl;
cout << "2. Usun ksiazke." << endl;
cout << "3. Wyswietl baze." << endl;
cout << "4. Zapisz baze." << endl;
cout << "5. Wczytaj baze." << endl;
cout << "6. Wyjdz." << endl << endl;
cout << "Wybor: "; cin >> wybor;
cout << endl;
switch(wybor)
{
case '1':
cout << "Podaj tytul ksiazki: "; cin >> nazwa_ksiazki;
cout << endl;
ksiazki.push_back(nazwa_ksiazki);
break;
case '2':
cout << "Ktora ksiazke usunac ?" << endl;
cout << "Nr: "; cin >> nr_ksiazki;
if(ksiazki.size()>0)
{
ksiazki.erase(ksiazki.begin()+nr_ksiazki);
}
else
{
blad_braku();
}
break;
case '3':
cout << "Baza zawiera " << ksiazki.size() << " ksiazek." << endl << endl;
for(unsigned int i=0;i<=ksiazki.size()-1;i++)
{
cout << "Ksiazka [" << i+1 << "]: " << ksiazki[i] << endl;
}
system("pause");
break;
case '4'://zapis
ofstream plik("zapis.txt");
for(unsigned int i=0;i<=ksiazki.size()-1;i++)
{
plik << ksiazki[i];
}
//plik.open("zapis.txt", ios::out);
//plik.write(( char * ) & ksiazki[ 0 ], ksiazki.size() * sizeof( int ) );
//plik.close;
break;
case '5'://odczyt
break;
case '6':
cout << "Dziekuje za uzycie programu." << endl << endl;
koniec=1;
system("pause");
break;
default:
blad_numeru();
break;
}
}
while(koniec!=1);
return 0;
}
void blad_numeru()
{
cout << "Bledny numer." << endl << endl;
system("pause");
}
void blad_braku()
{
cout << "Brak ksiazek w bazie." << endl << endl;
system("pause");
}
Nie działa, tzn. są błędy kompilacji.
Chcę żeby był zapis do pliku txt zawartości tego vectora ksiazki i odczyt z pliku txt.