C ++ Getline после Cin

Я пытаюсь написать программу, которая получает ввод пользователя определенным образом. Сначала я ввожу слово, которое не содержит пробела; Затем я ввожу другое слово, которое может содержать пробел; И программа выводит 2 слова отдельно.

Например, я ввожу "Том ленивый мальчик". Затем программа выводит "Том: ленивый мальчик".

Вот что я пытался сделать:

int main(){
    string a;
    cin >> a;
    string b;
    getline(cin, b);
    cout << a << ":" << b<< endl;
}

Я попытался использовать getline после cin, однако вывод выглядит так: «Том: ленивый мальчик»

Если я введу «Том (много пробелов) ленивый мальчик», то получится «Том: (много пробелов) ленивый мальчик», и я хочу, чтобы эти пробелы не нужны. Есть лучший способ сделать это?

Я вижу, что есть несколько способов, которые требуют редактирования строки после cin, но можем ли мы решить проблему прямо на этапе ввода?

Ответы на вопрос(3)

Ваш ответ на вопрос