Pobieranie dwóch linii bez spacji.

0

Witam. Mój problem polega na tym, że muszę pobrać (z wejścia konsoli) dwie linie (najlepiej aby pomijało spacje, lecz mogę napisać sobie funkcję która je kasuje). Gdy w tych miejscach użyję zwykłego cin, program działa dobrze. Lecz cin po podaniu spacji, zaczyna pobierać kolejny ciąg. Jak mogę to rozwiązać?

Mam taki kod:

 
int main()
{
    int n,k;
    int wynik=0;
    cin>>n>>k;
    string pol1[n];
    string pol2[n];
    
    for(int i=0; i<n; i++)
    {
            //pobierz pol1[i]
            //pobierz pol2[i]
            cout<<tylesamosamo(pol1[i],pol2[i])<<" "<<ostatnie(pol1[i],pol2[i],k)<<endl;
            if (tylesamosamo(pol1[i],pol2[i])==ostatnie(pol1[i],pol2[i],k)) { wynik++;}
    }                    
cout<<wynik;
}

Nie zwracajcie uwagi na te funkcje ;).

0

getline() z stringa

0

Getline tutaj nie działa. Program się zachowuje, jakby pobrał już drugą linię.

0

Jak to Ci nie działa?

string a,b;
getline(cin, a);
getline(cin, b);
cout << a << "\n" << b;
 

Mam nadzieje że dajesz cin.ignore()

0

No nie działa. Wystarczy że wpiszę jedną linię i zatwierdzę enterem, a program przechodzi do tego couta (mówię o moim kodzie).

0

No to mówię daj przed getline() cin.ignore()

 
cin >> naszBuf;
cin.ignore(10, '\n');
getline(cin, tmp);
0

Dzięki, działa ;). Nie za bardzo wiedziałem gdzie dać ten cin.ignore.

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