Комментарии 9
ch == ' ' || (ch >= '0' && ch <= '9')
std::isspace, std::isdigit
std::isspace, std::isdigit
Разве по крайней мере isspace
не зависит от локали,
т.е. поведение твоего код может непредсказуемо меняться
в зависимости от глобальной переменной?
непредсказуемо меняться в зависимости от глобальной переменной
Скорее наоборот, меняться так, как желает пользователь конкретной системы.
Гарантии, что множество кодов символов {'0'-'9'}, располагается именно последовательно и растёт от нуля к девяти насколько я знаю, не гарантированно ни одним стандартом. Т.е. код просто непортабельный, в данном случае это может и не есть плохо/важно, просто, имхо, моветон.
Это как сравнивать конец строки с 0. Портабельное решение c == '\0', но в 99.9999...% случаев видимо отработает и c == 0.
Хорошо но поздновато. Такому тьюториалу цены бы не было лет 15 назад.
Кстати, почему поздновато? Сейчас используют что-то другое с подобным функционалом?
Нет, просто сейчас как то не так актуально стало. Раньше я действительно помню разные люди решали эту задачу параллельно и независимо, а сейчас ажиотаж просто спал. И вы очень верно подметили, я тоже помню это ощущуние, информация вроде есть, но катастрофически не хватает примеров и тонкостей. Как раз у вас с этим все хорошо.
Свои потоки ввода-вывода в C++ с помощью std::streambuf