При чтении ввода с использованием cin >> some_var
, по умолчанию используется разделитель пробел (хотя вы можете изменить ), а при печати cout
печатает до тех пор, пока не найдет \0
который является концом строки.
Если вы хотите читать, пока он не найдет \0
во входном потоке, то вы должны написать это:
std::getline(std::cin, some_var, '\0');
В качестве третьего аргумента функции std::getline
можно указать любой другой символ в виде разделитель .
Обратите внимание, что есть функция-член с таким же именем getline
, которая немного отличается от той, которую я использовал выше, и является бесплатной автономной функцией.
Сравните:
Я использовал первый.