Niezrozumiały wyciek.

Niezrozumiały wyciek.
C3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
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...

  • Rejestracja: dni
  • Ostatnio: dni
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.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

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

C3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Super! Dzięki działa!

Lece się doedukować na wikibooksie

DK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
0

Możesz zamienić wszystkie

Kopiuj
cin << x;

na:

Kopiuj
getline(x);

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

Sparrow-hawk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Katowice
  • Postów: 189
1

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.