cout << "Wprowadz tytul. ";
getline(cin, newalbum[i].title);
cin.ignore();
cout << "Wprowadz wykonawce. ";
getline(cin, newalbum[i].band);
cin.ignore();
Po podaniu tytułu i wciśnięciu entera, znak '\n' znajduje się w buforze i powinien być wczytany przez cin.ignore(), dzięki czemu można wczytać kolejną zmienną. A dzieje się to tak naprawdę dopiero po wciśnięciu dwóch enterów po podaniu tytułu.
Widzę też, że jeśli parametrem obu z cin.ignore() będzie 0 to wtedy wystarczy jednokrotnie nacisnąć enter i wszystko działa jak należy.
A przecież cin.ignore(0) wydaje mi się nie mieć sensu. Jak to, metoda ma wczytać 0 argumentów? Czyli po prostu ma nie wczytywać żadnego...
I dlaczego cin.ignore() bez argumentu zachowuje się tak, jak to opisane, skoro domyślnym jego argumentem jest 1?