Witam! Ostatnio chciałem sobie podsumować niektóre rzeczy z nauki i chciałem stworzyć program prosty notatnik + kalkulator w jednym w konsoli. Wszystko jest dobrze, ale napotkałem jeden błąd. Otóż kiedy chcę nadpisać plik lub dopisać tekst, używając getline wyrzuca mi całego case w switchu. Cin działa ale zależy mi na spacjach. Mógłby ktoś zerknąć na ten kod i dać mi podpowiedź na czym się skupić? Jeśli zajdzie potrzeba to mogę wysłać cały kod. Notatnik ten zapisałem w voidzie i wybieram 4 opcje. Tworzenie (działa), Wyświelanie (działa), Nadpisywanie (działa częściowo), Dopisywanie (działa częściowo). Skąd wiem, że to coś z getline? Wstawia mi poprawnie endl w pliku.
Oto ten case:
case '3':
{
cout << endl << "Podaj nazwe pliku: ";
cin >> nazwa;
nazwapliku = nazwa + ".txt";
plik.open(nazwapliku.c_str(), ios::out);
cout << "Napisz tekst:" << endl;
getline(cin,tekst);
plik << tekst << endl;
plik.close();
getchar();getchar();
notatnik();
break;
}
A tak przy okazji, Mógł by też mi ktoś wytłumaczyć czemu ten case nie działa bez klamerek? Może to coś jest z tym związane.
Pozdrawiam.