Niezrozumiały wyciek.

0

Cześć!

Piszę sobie pewien projekt biblioteki i pojawił się mi problem, którego nie potrafię nawet zidentyfikować a co dopiero rozwiązać lub szukać rozwiązania, otóż mam taki kod:

https://pastebin.com/AS2R7fm3

Problem jest tego typu:
http://imgur.com/h9Swztj
http://imgur.com/tpqPR5c

Wszystkie dane powinny pojawiać się pojedynczo, lecz przy 5 wszystko zaczyna się chrzanić i wyskakują podwójnie "Wydawca: " " Liczba stron" i kolejne tak samo.

Problem jest na tyle uciążliwy że w kodzie wydaje mi się że jest wszystko okey, a jednak coś nie jest...

1

Po wczytaniu wartości liczbowej zostaje znak nowej linii w buforze. Musiałbyś się go pozbyć poprzez bodajże cin.ignore(), popatrz w dokumentacji.

2

Jjak robisz cin>>x to newline zostanie w buforze i kolejne getline go zje nie wczytując niczego.

0

Super! Dzięki działa!

Lece się doedukować na wikibooksie

0

Możesz zamienić wszystkie

cin << x;

na:

getline(x);

Albo jak wyżej czyścić bufor cin.ignore()

1

Możesz jeszcze użyć cin.get() bez argumentów, które odczyta znak nowego wiersza.

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