std::ctype_base::space
- это разделитель для std::istream
, который останавливает чтение следующего символа из источника.
std::ctype_base::space
относится к пробелам и переводу строки.Это означает, что s
может содержать любой символ, кроме пробелов и новой строки, при чтении с использованием cin>>s
.
Если вы хотите прочитать также всю строку, содержащую пробелы, вы можете использовать getline()
функция, которая использует символ новой строки в качестве разделителя.Также существует перегруженная функция, которую вы можете использовать, если хотите указать свой собственный разделитель. Подробнее см. В документации .
Вы также можете использовать настроенный языковой стандарт , который можно установить на std::istream
.Ваша настроенная локаль может определять набор символов, которые будут обрабатываться как разделитель std::istream
.Вы можете увидеть один такой пример здесь (см. Мое решение):
Правильный способ разбить std :: string на вектор