Jeśli przekazujesz tekst do strumienia wyjścia cout to nie trafia to na konsolę. Program działa dobrze. Problem w tym, że Twój napis "Wyjście" w momencie czyszczenia jeszcze nie był wypisany. Jest to jedna ze sztuczek optymalizacyjnych jakie są zaimplementowane w strumieniach. Główne założenie jest takie, aby wypisywać tekst dużymi partiami, a nie wyraz po wyrazie.
Wypisywanie nowych linii poprzez: endl wymusza niejako wypisanie się na ekran, dlatego tylko ostatnia linijka "przetrwała" czyszczenie. Rozwiązanie jest proste. Musisz wymusić, aby strumień cout wypisał wszystko co ma do wypisania przez czyszczeniem konsoli. Aby to zrobić musisz posłać do strumienia modyfikator flush. Można to zrobić na 2 sposoby:
SPOSÓB #1:
cout << "Wyjscie" << flush;
SPOSÓB #2:
cout << "Wyjscie";
cout.flush();
Dopiero po wyczyszczeniu strumienia (flush) możemy czyścić.
I teraz wszystko powinno działać. Pozdrawiam :-)