Problem ze strumieniami

0

Mam taki problem: mam menu z ktorego wybieram opcje, w jednej z tych opcji wprowadzam dane z klawiatury - nazwisko - i jesli wprowadze je ze spacja lub tabem w srodku to wczyta tylko pierwsza czesc. Z tym jest spoko, moze tak byc. Caly problem w tym ze dalej pojawiaja sie na ekranie napisy i zeby uzytkownik mogl bylo je przeczytac musze zrobic jakas funkcje ktora czeka na ENTER. Jesli w podawaniu nazwiska dam spacje to funkcje wczyta ten enter ktory jest po drugiej czesci nazwiska. Jak sobie z tym poradzic? Jak mozna wyczyscic bufor cin??

0

sprubuj fflush(stdin);

0

Korzystam ze strumienie cin oraz cout z C++ wiec fflush(stdout) nie wchodzi raczej w gre.

0

zrob to tak wczytuj znak po znaku i sprawdzaj i
if(znak==32)//jesli znak to spacja
{
znak=jakis inny; //jesli wczyta spacje niech to zamieni na cos czego
//kompilator nie pominie potem przy wyswietlaniu odwrotni
//nie moga byc litery of course ani liczby najlepiej _
};

cos mi sie obsunelo ale sposob jest jedynyh dobry

0

cin też ma flush, chyba cin.flush() czy jakoś tak

0

cin nie ma ani operatora flush ani funkcji skladowej flush(). Kurcze, wydawalo mi sie ze to jest raczej standardowe pytanie, niezbyt trudne, a tu popatrz - nikt nie wie...

0

Nie wczytuje ci po spacji nazwiska bo prawdopodobnie robisz tak:

char buf[20];
cin >> buf;

Zrób tak:

const int n = 20;
char buf[n];
cin.getline(buf, n);

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