Getline spadł z rowerka

0

Witam. Nie działają mi getline, po prostu są pomijane. Jeśli wytnę treść z case do oddzielnego programu to działa. Pomocy.


#include <iostream>
#include <algorithm>
#include <conio.h>

using namespace std;
int swicz;
string jeden, dwa, zdanie2, zdanie3, szukaj3;

int main()
{
    cout<<"Co chcesz robic?"<<endl;
    cout<<"1. Laczenie"<<endl;
    cout<<"2. Zmiana Wielkosci"<<endl;
    cout<<"3. Szukanie wyrazu w zdaniu"<<endl;
    cin>>swicz;
    switch(swicz){
    case 1:{
        cout<<"Podaj pierwszy i drugi wyraz"<<endl;
        cin>>jeden>>dwa;
        string trzy=jeden+dwa;
        cout<<endl<<trzy;
        break;
    }
    case 2:{
        cout<<"Podaj zdanie: ";
        getline(cin, zdanie2);
        transform(zdanie2.begin(), zdanie2.end(), zdanie2.begin(),::toupper);
        cout<<endl<<zdanie2;
        transform(zdanie2.begin(), zdanie2.end(), zdanie2.begin(),::tolower);
        cout<<endl<<zdanie2;
        break;
    }
    case 3:{
        cout<<"Podaj zdanie: ";
        getline(cin, zdanie3);
        cout<<"Podaj czego szukasz";
        getline(cin, szukaj3);
        size_t pozycja=zdanie3.find(szukaj3);
        if(pozycja!=string::npos) cout<<"Znaleziono na pozycji "<<pozycja;
        else cout<<"Nie znaleziono";
        break;
    }
    default: cout<<"Zla opcja"; break;
    }
    return 0;
}

1

To wsadz je na rowerek i kod wrzuć jak człowiek swiczu jeden.

4

cin>>swicz nie zjada znaku nowej linii który podajesz z klawiatury jak stukasz enter i potem getline zjada tenże znak zamiast twoich danych :( Potrzbujesz jakieś cin.ignore albo dodatkowy getline albo coś w tym stylu.
Z innej beczki #include <conio.h>? Serio? Mamy rok 2020 xD Czemu korzystasz z jakiejś książki która jest starsza od ciebie?

0
Shalom napisał(a):

cin>>swicz nie zjada znaku nowej linii który podajesz z klawiatury jak stukasz enter i potem getline zjada tenże znak zamiast twoich danych :( Potrzbujesz jakieś cin.ignore albo dodatkowy getline albo coś w tym stylu.
Z innej beczki #include <conio.h>? Serio? Mamy rok 2020 xD Czemu korzystasz z jakiejś książki która jest starsza od ciebie?

To jak zrobić getch() bez #include <conio.h>?

0
#include <iomanip> // for ws
...
cin>>ws>>jeden>>dwa;
1
std::getline(std::cin >> std::ws, zdanie2);

1 użytkowników online, w tym zalogowanych: 0, gości: 1