Problema com cin quando os espaços são inseridos, usando a classe string

Eu tenho o seguinte código:

main.cpp
#include <iostream>
#include <string>

using namespace std;

string name;
string age;

int main() {
    cout <<"Name: ";
    cin >> name;
    cout << endl;
    cout <<"Age: ";
    cin >> age;
    cout << endl;
    cout << "Your name is " << name << ", and you are " << age << " years old."  << endl;
    cout << "Press enter to close this application" << endl;
    getchar();
    return 0;
}

Eu notei que se eu colocasse um espaço na minha entrada para o nome, isso não me daria a chance de inserir o nome, e ele veria a entrada após o espaço como idade. Peço desculpas se isso é um erro de novato, o que provavelmente é. Anteriormente, eu programava o Java e decidi mudar para o C ++, pois ele atende melhor às minhas necessidades. Eu provavelmente também formato meu código estranho para seus padrões, por favor, corrija-o se você quiser.

Eu também notei outro erro, algo que eu nunca tive problemas com Java. Eu não consigo descobrir como impedir que ele feche instantaneamente quando terminar o processamento. Ouvi dizer que você pode usar "system. (" Pause "); mas também me disseram para não usá-lo. Estou realmente confuso sobre o que usar. Ouvi usar getchar () ;, mas não parece fazer nada.

Qualquer ajuda seria muito apreciada, como eu sou um novato completo quando se trata de C + +.

questionAnswers(2)

yourAnswerToTheQuestion