Ogolnie to powiem wam ze nie zabardzo rozumiem dzialanie tego:
std::cin.clear();
std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
mam opis:
"Powyższy zapis ignoruje do 1000 znaków znajdujących się w strumieniu wejściowym. Jeżeli w strumieniu wejściowym zostanie napotkany znak nowego wiersza '\n' proces ignorowania znaków zostanie zakończony. Proces ignorowania znaków nie zostanie jednak zakończony gdy w buforze nie będzie więcej znaków do odczytania. Jeżeli chcesz używać tej techniki to należy czyścić strumień wejściowy po każdym wczytaniu danych by uniknąć ewentualnych problemów technicznych związanych ze sposobem działania tej metody."
No i opis tego ze to pierwsze czysci flagi bledu a drugie bufor tzn ignoruje znaki w nim.
Ale mimo wszystko nie zabardzo rozumiem, czyli jak to jest podaje pierwsza liczbe normalnie, w drugiej powiedzmy podaje znak *, i on teraz znajduje sie w buforze wejsciowym ale jest ignorowany przez druga linijke tak ? On znika w ktoryms momencie ? i to cale , 'n/' na koncu linijki, jest opisane ze beda znaki ignorowane pÓÓÓÓki to sie tam nie pojawi, i faktycznie wpisuje to w dzialajacym programie i crashuje go z powodu wczesniej wpisanych znakow, ale gdy tego nie podam to program dziala w nieskonczonosc... a wiec jak dokladnie dziala i co robi to '\n' na koncu tego wiersza ? Ogolnie prosilbym o lopatologicznie wytlumaczenie tych dwoch linijek bo nie moge troche tego ogarnac.