#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
//ZMIENNE
fstream plik;
int wybor,i=1;
string osoba;
//--------------
//FUNCKCJE
void OtwarciePlikuZapis()
{
plik.open("test.txt", ios::out|ios::app);
}
void ZamknieciePliku()
{
plik.close();
}
void OtwarciePlikuOdczyt()
{
plik.open("test.txt", ios::in);
}
//--------------
int main()
{
cout << "Wpisownik v 1.0";
cout <<endl << "1. Wpisz sie 2.Zobacz liste wpisanych"<<endl;
cin >> wybor;
cout <<endl<<endl;
if (wybor == 1)
{
OtwarciePlikuZapis();
cout << "Podaj swoje imie i nazwisko: "<<endl;
getline(cin,osoba);
cout << "zostales poprawnie dodany do bazy danych";
}
else
{
OtwarciePlikuOdczyt();
system("cls");
while(getline(plik,osoba))
{
cout << i << ". " << osoba<<endl;
i++;
}
}
return 0;
}
Cześć, chciałem sobie potrenować funkcje. I chciałem stworzyć program w którym wpisuje się imię i nazwisko, program zapisuje to do pliku a jeśli się chce można wyświetlić cala listę. Dodałem kilka przykładowych imion do pliku i program wyświetla wszystko poprawnie. Problem pojawia się gdy chce się dopisać nowe imię i nazwisko. Chciałem zrobić to funkcja getline(). Niestety program po skompilowaniu pomija ta linie (nie można nic wpisać) a właściwie dodaje pusta linie do pliku. No i pytanie, co jest tego przyczyną?