To co w tytule tematu, w miejsach gdzie dodalem komentarz program dziwnym trafem skipuje pobranie danych i wraca znowu do menu, nie mam pojęcia z jakiego powodu. Prosze o pomoc :)
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
int main()
{
string tekst;
int wybor = 0;
int dlugosc;
string tekstPierwotny;
string fragment;
int x = 0, y = 0, z = 0;
cout << "Wpisz tekst, ktory chcesz zmodyfikowac: ";
getline(cin, tekst);
tekstPierwotny = tekst;
Sleep(1000);
system("cls");
dlugosc = tekst.length() + 20;
do {
system("cls");
for (int i = 0; i < dlugosc; i++) cout << "=";
cout << '\n'<<"Tekst pierwotny: "<< tekstPierwotny << '\n';
cout << "Tekst po zmianach: " << tekst << '\n';
for (int i = 0; i < dlugosc; i++) cout << "=";
cout << '\n';
cout << "Co chcesz zrobic z powyzszym tekstem? \n";
cout << "1. Usuwanie liter w tekscie \n";
cout << "2. Wstawianie fragmentu do tekstu \n";
cout << "3. Zastapienie fragmentu tekstu innym fragmentem \n";
cout << "4. Wyjscie \n";
cout << "Wybor: ";
cin >> wybor;
switch (wybor)
{
case 1:
system("cls");
cout << "Podaj od ktorego znaku usuwac: ";
cin >> x;
cout << "Podaj ile znakow usuwac: ";
cin >> y;
tekst.erase(x-1, y-1);
Sleep(1000);
break;
case 2:
system("cls");
cout << "Podaj po ktorym znaku chcesz wstawic fragment tekstu: ";
cin >> x;
cout << "Podaj co chcialbys tam wstawic: ";
getline(cin, fragment); //tutaj skipuje pobranie danych
tekst.insert(x, fragment);
break;
case 3:
system("cls");
cout << "Podaj po ktorym znaku chcesz wstawic fragment tekstu: ";
cin >> x;
cout << "Podaj ile znakow chcesz zastapic: ";
cin >> y;
cout << "Podaj co chcialbys tam wstawic: ";
getline(cin, fragment); //tutaj tez
tekst.replace(x, y, fragment);
system("cls");
break;
case 4:
system("cls");
cout << "Wychodze z programu";
Sleep(1000);
break;
default:
break;
}
} while ((wybor<4 && wybor>0));
return 0;
}