Tak jak już tutaj ktoś napisał rozwiązanie, tak ja postaram się wytłumaczyć skąd się bierze problem.
Otóż obiekt cin pobiera dane, ale do pierwszego napotkanego białego znaku, którym jest spacja. Po natrafieniu na spację przerywa pobieranie, więc dane zostają zapisane do Twojej zmiennej. Jednakże w buforze wejścia zostają dane, które nie zostały przetworzone - to jest nigdzie nie zostały zapisane - więc przy następnym wywołaniu cin >> zmienna; zostaje pobrane następne słowo, które zostało w buforze i od razu jest ono zapisywane do zmiennej.
Rozwiązaniem jest skorzystanie z tego, co zostało już napisane w odpowiedzi, jako parametry podajesz cin, a następnie zmienną typu string.