Piszę książkę adresową, używając struktur i wektora i chcę zapisać obiekty struktury do pliku. Po wpisaniu danych w konsoli, plik się tworzy, ale zamiast danych zapisuje się przypadkowa liczba oraz kilka ||||.
Jak można to rozwiązać?
#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include <sstream>
#include <vector>
using namespace std;
struct Adresat {
string imie, nazwisko, nrTel, email, adres;
int idOsoby = 0;
};
std::vector <Adresat> adresaci;
int dodajOsobeDoKsiazki () {
Adresat adresat;
string imie, nazwisko, nrTel, email, adres;
int idOsoby;
cout << "Podaj imie: "; cin >> adresat.imie;
cin.sync();
cout << "Podaj nazwisko: "; cin >> adresat.nazwisko;
cin.sync();
cout << "Podaj nr telefonu: "; getline(cin, adresat.nrTel);
cin.sync();
cout << "Podaj email: "; cin >> adresat.email;
cin.sync();
cout << "Podaj swoj adres: "; getline(cin, adresat.adres);
adresat.idOsoby = idOsoby;
adresat.imie = imie;
adresat.nazwisko = nazwisko;
adresat.nrTel = nrTel;
adresat.email = email;
adresat.adres = adres;
//dodaj osobe do wektora
adresaci.push_back(adresat);
//zapisz do pliku
fstream plikDoZapisu;
plikDoZapisu.open("blble.txt", ios::out | ios::app);
if (plikDoZapisu.good() == true)
{
//plikDoZapisu.write(( char * ) & adresaci[ 0 ], adresaci.size() * sizeof( string ) );
plikDoZapisu << adresat.idOsoby << "|" << adresat.imie << "|" << adresat.nazwisko << "|" << adresat.nrTel << "|" << adresat.email << "|" << adresat.adres << "|" << endl;
plikDoZapisu.close();
}
else
{
cout << "Nie udalo sie otworzyc pliku";
system("pause");
}
cout << "Osoba zostala dodana do ksiazki adresowej" << endl;
system("pause");
}
int main() {
std::vector <Adresat> adresaci;
int liczbaZapisanychOsob = 0;
char twojWybor;
//liczbaZapisanychOsob = wczytajOsobyZPlikuTekstowego (adresaci);
while (1)
{
system("cls");
cout << "Witaj w ksiazce adresowej!" << endl;
cout << "Wybierz opcje: " << endl;
cout << "1. Dodaj adresata" << endl;
cout << "9. Zakoncz program" << endl;
cin >> twojWybor;
if (twojWybor == '1') {
liczbaZapisanychOsob = dodajOsobeDoKsiazki();
}
else if (twojWybor == '9') {
exit(0);
}
}
return 0;
}