Olá blockmonork Mesmo os outros usuários terem resolvido o seu problema, nenhum indicou o porquê do erro. Vou te explicar o erro e como soluciona-lo apenas acrescentando uma linha. Apesar de getline() funcionar quando os dados de cadeia são lidos de modo consecutivo, problemas serão apresentados ao se tentar utilizar uma variavel de cadeia, depois de ter utilizado cin para ler uma variável caractere ou numérica. (Foi o que você fez. Usou o cin pra ler numero e depois tentou usar getline() isso gera o erro). A razão dessa anomalia, é que ao entrarmos com o numero no cin>> precionamos a tecla ENTER em seguida. Essa ação insere um caractere CRLF (retorno do carro / avanço de linha (é o '\n')) e permanece no buffer. Quando se executa a sentença getline, lê-se o buffer e se encontra o caractere CRLF; dado que este é, por default, o caractere de separação, detém-se a leitura e se insere o caractere de terminação nulo na cadeia. Por conseguinte, não se pode introduzir o texto. a forma mais simples de solucionar o problema, é usar o comando cin.ignore() antes de usar o getline. Ex.: int numero; string texto; cout<<"Digite um numero: "; cin>>numero; cin.ignore(); // limpa o buffer cout<<"Digite o texto: "; getline(cin,texto);