Вы можете использовать
cin.get( name, 20 );
или
cin.getline(name, 20);
В зависимости от того, хотите ли вы использовать символ новой строки в вашей строке.
РЕДАКТИРОВАТЬ:
Если вы хотите еще больше упростить свой код, вы можете использовать строку вместо массива char, вам не придется беспокоиться о том, что пользователь превысит ваш размер буфера, то есть
string name;
getline(cin, name);
cout << name << endl;
EDIT 2:
Как Дэвид Хеффернан также отметил в комментарии, я должен объяснить, почему это не работает для вас, как ожидалось.Оператор извлечения (operator >>
) заканчивается, когда символ пробела - пробел в вашем случае - достигается.Оператор также завершается при достижении нулевого символа или конца файла.