Jeśli chodzi o przyczynę braku pierwszego słowa w pliku:
Strumień wejścia cin wykonuje się w Twoim kodzie w linii 21,
cin>>notatka;
a potem ponownie w linii 26:
getline(cin, notatka);
Co prawda ten drugi cin nie czeka już na Enter, ale "bierze" te słowa, których nie wziął pierwszy cin - a pierwszy bierze treść do pierwszej spacji, bo tak to działa bez użycia getline. Oznacza to, że drugi cin pobiera wszystko wpisane po pierwszej spacji, a ponieważ jest wewnątrz getline, to pobiera całą dalszą część linii (razem z następnymi spacjami) i zapisuje to do zmiennej notatka (podmienia więc to pierwsze słowo, które wcześniej zapisał tam pierwszy cin).
Proponuję więc zrobić z tych dwóch linijek jedną, stosując getline. Dodatkowo, aby program czekał w tym miejscu na Enter, trzeba "wyczyścić" poprzedni strumień (cin>>wybor), a więc przed getline wpisać cin.ignore(); U mnie przynajmniej to zdaje egzamin.