чаром работает переполнение, то есть выход за пределы возвращает в начало, а выход из начала возвращает в конец. Вопрос такой: как задетектить любое переполнение чара?
Что значит "использую чар положительных значений"? Задетектить переполнение, после того как оно случилось - нельзя. Можно проверять предусловием, что переполнение не возникнет, но скорее всего вы что-то делаете не так
Ну я имел ввиду unsigned, для меня это так. Как проверить предусловием? К инту привести и заранее добавить какое то значение, а после посмотреть будет ли оно превышать макс длинну?
Если вы используете просто char, то он может быть как signed, так и unsigned типом unsigned char c = ...; if (std::numeric_limits<unsigned char>::max() - c < value) { // overflow } else { // no overflow c += value; } Но как мне кажется, вам не надо к чару прибавлять ничего, зачем? Почему именно чар?
Надо начать с того, что char не положительный, и не отрицательный, а неизвестного знака.
Но ощущение ещё есть что ты что-то не так совсем делаешь
А зачем тогда signed и unsigned? И минус есть тоже, и плюс
Это разные типы, char не обязан быть ни signed, ни unsigned, он одно из двух, но какой именно - неизвестно
Sinned char и unsigned char - числа. char - буква
Это где такое написано???
Нигде. Логика такая языка
Если чар это буква, то это буква какого то языка? Ну либо же символ. Получается, если я захочу вместить в свой проект 20 разных языков, то как мне вместить в чар, который ещё и с аски работает, такое большое количество букв? А эмодзи? А знаки? Расказыте позалуста блын
http://eel.is/c++draft/basic.fundamental#7.sentence-2
Чар не символ, чар это байт
Обсуждают сегодня