Witam,
Próbuję napisać książkę adresową, używając wektora. Chcę zapisać osobę do pliku, tak aby każda miała inny numer ID. Wszystkie dane ładnie się zapisują tylko nr ID jest ciągle 1. Inkrementuję idAdresata i iloscOsob, ale to nie pomaga.
#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 idAdresata = 0;
};
std::vector <Adresat> adresaci;
int dodajOsobeDoKsiazki (int iloscOsob) {
Adresat pomoc;
string imie = " ", nazwisko = " ", nrTel = " ", email = " ", adres = " ";
string idAdresata;
iloscOsob = 0;
cout << "Podaj imie: ";
cin >> imie;
cin.sync();
cout << "Podaj nazwisko: ";
cin >> nazwisko;
cin.sync();
cout << "Podaj nr telefonu: ";
getline(cin, nrTel);
cin.sync();
cout << "Podaj email: ";
cin >> email;
cin.sync();
cout << "Podaj swoj adres: ";
getline(cin, adres);
pomoc.idAdresata = iloscOsob + 1;
pomoc.imie = imie;
pomoc.nazwisko = nazwisko;
pomoc.nrTel = nrTel;
pomoc.email = email;
pomoc.adres = adres;
//dodaj osobe do wektora
adresaci.push_back(pomoc);
//zapisz do pliku
fstream plikDoZapisu;
plikDoZapisu.open("blble1.txt", ios::out | ios::app);
if (plikDoZapisu.good() == true) {
//plikDoZapisu.write(( char * ) & adresaci[ 0 ], adresaci.size() * sizeof( string ) );
plikDoZapisu << pomoc.idAdresata << "|" << pomoc.imie << "|" << pomoc.nazwisko << "|" << pomoc.nrTel << "|" << pomoc.email << "|" << pomoc.adres << "|" << endl;
plikDoZapisu.close();
//cout << adresat.idAdresata;
} else {
cout << "Nie udalo sie otworzyc pliku";
system("pause");
}
cout << "Osoba zostala dodana do ksiazki adresowej" << endl;
system("pause");
iloscOsob++;
pomoc.idAdresata++;
return iloscOsob + 1;
}
int main() {
int liczbaZapisanychOsob = 0;
char twojWybor;
//sprawdzCzyPlikIstnieje ("blble.txt");
liczbaZapisanychOsob = wczytajPlikZDanymiAdresatow (adresaci);
while (1)
{
system("cls");
cout << "Witaj w ksiazce adresowej!" << endl;
cout << "Wybierz opcje: " << endl;
cout << "1. Dodaj adresata" << endl;
cin >> twojWybor;
if (twojWybor == '1') {
dodajOsobeDoKsiazki(liczbaZapisanychOsob);
}
}
return 0;
}