Zapewne przed użyciem getline użyłeś zwykłego wczytywania. Getline ignoruje znaki białe, aż do napotkania znaku nowej linii, które w Twoim wypadku zostaje "pobrane" ze zwykłego cina. Rozwiązaniem jest oczyszczenie strumienia wejściowego poprzez instrukcję std::cin.ignore();
W Twoim przypadku zadziała ot np taki kod:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
string text;
std::cin>>text;
using Limits=std::numeric_limits<streamsize>;
std::cin.ignore(Limits::max(),'\n');
std::getline(std::cin,text);
return 0;
}
Jak to działa ?
numeric_limits<streamsize>;<- pobiera długość strumienia
std::cin.ignore(Limits::max(),'\n');//Ignorowanie znakow, az do znaku nowej linii
I voila działa