#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ą?