[C++] Problem z getline() - pomijanie pierwszej litery

PabloRal
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 wrz 2012, o 13:52
Płeć: Mężczyzna
Lokalizacja: Legnica
Podziękował: 1 raz
Pomógł: 4 razy

[C++] Problem z getline() - pomijanie pierwszej litery

Post autor: PabloRal »

Robię zadanie "Wiersz" z II etapu VI OIG ()
i mam problem z funkcją getline(), a mianowicie wczytując 2, 3 ... wyraz, funkcja pomija pierwszą literę i nie wiem jak temu zaradzić. Poniżej podaję kod.

Kod: Zaznacz cały

#include <iostream>
#include <string>
using namespace std;

int main(){
        int t, k;
        int l = 0;
        cin >> t >> k;
        while(t--){
                string q, w, o, p;
                cin.ignore();
                getline(cin, o);
                getline(cin, p);
                int o1 = o.size();
                int p1 = p.size();
                for(int i = 0; i < o1; i++){
                        if(o[i] != ' ') q += o[i];
                }
                for(int i = 0; i < p1; i++){
                        if(p[i] != ' ') w += p[i];
                }
                int f = q.size();
                int g = w.size();
                if(f < k || g < k ){}
                else{
                        int a = 0;
                        int b = 0;
                        string x;
                        string y;
                        int n = 0;
                        for(int i = 0; i < f; i++){
                                if(q[i] == 'a' || q[i] == 'e' || q[i] == 'i' || q[i] == 'o' || q[i] == 'u' || q[i] == 'y'){
                                        a ++;
                                }
                                if(q[i] != ' '){
                                        n ++;
                                        if(n >= (f+1) - k){
                                                x += q[i];
                                        }
                                }
                        }
                        int m = 0;
                        for(int i = 0; i < g; i++){
                                if(w[i] == 'a' || w[i] == 'e' || w[i] == 'i' || w[i] == 'o' || w[i] == 'u' || w[i] == 'y'){
                                        b ++;
                                }
                                if(w[i] != ' '){
                                        m ++;
                                        if(m >= (g+1) - k){
                                                y += w[i];
                                        }
                                }
                        }
                        if(x == y && a == b){
                                l++;
                        }
                }
        }
        cout << l << endl;
        return 0;
}
-- 28 sty 2013, o 22:48 --

Temat do usunięcia, znalazłem błąd ;D
Ostatnio zmieniony 27 sty 2013, o 20:16 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
ODPOWIEDZ