|
12 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 33
|
|
Тип переменной char19.02.2020, 21:59. Показов 6694. Ответов 55
Объясните мне, что то я не понимаю, как я понял, этот тип общий, можно как писать, так вводить цифры, но почему то начиная с 10 программа выключается, также можно писать всего одну букву, но при этом даже русскую. Объясните мне, что из себя представляет этот тип. Я не могу понять, это такой тип который служит для ввода одного любого символа?
0
|
|
| 19.02.2020, 21:59 | |
|
Ответы с готовыми решениями:
55
Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR?
Как присвоить к новой char переменной другую char переменную с указателем |
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||
| 20.02.2020, 01:34 | |||||||
0
|
|||||||
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
|
| 20.02.2020, 01:55 | |
|
valen10, хотела ведь дополнить эту фразу условиями(без перегрузок и т.п.), но не стала. Фактически ввод здесь идёт в переменную short, а не char, и конкретно в этой теме, мне кажется, ТС важнее понять, что при вводе в char 10 вводится не как число, а как два отдельных символа.
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
|
||||||||||||
| 20.02.2020, 08:24 | ||||||||||||
0
|
||||||||||||
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
||
| 20.02.2020, 10:27 | ||
|
COKPOWEHEU, я выше уже написала, что напрасно не дописала в своей фразе "нельзя без ...", но речь шла о том, что при вводе-выводе тип char является символом, а не числом. Я не думаю, что если бы ТС перегрузил оператор ввода или использовал преобразование к short/int, у него бы возникли те вопросы, которые возникли. Поэтому я акцентировала внимание на том, что в char вводится символ, цифра, а не число, состоящее из нескольких цифр. И при вводе в char как в char будет введен именно символ, а не число, представляющее собой его код.
0
|
||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
||||||||
| 20.02.2020, 10:46 | ||||||||
|
elenayagubova,
0
|
||||||||
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
|
| 20.02.2020, 10:57 | |
|
Annemesski, не без смс и регистрации. Преобразование типа - такие же смс и регистрация. Использовать потоковый ввод(без перегрузок и преобразований типа!) в char и относится к нему как к однобайтовому int, вводя число - незаконно.
0
|
|
|
Неэпический
|
|
| 20.02.2020, 11:56 | |
|
elenayagubova, char - целочисленный тип размером в один байт. Также он относится к обычным символьным типам. И из потоков читаются байты. При вводе 10, в поток попадают коды символов 1 и 0, и в char запихивается код символа 1, а не машинное представление числа 10, и это заслуга системы ввода-вывода, а не какой-то char'овской магии. В потоках вам сразу подаются коды символов, так что если читать в int, то сначала всё равно читается текст и потом уже конвертируется в машинное представлении числа. Было бы странно, если бы вас заставляли вводить коды символов и машинное представление числа, вместо "человеческих загагулин". Точно также char используется для работы с байтами. На unsigned char также основаны std::byte и char8_t. Всё поведение, видимое при работе с ним как с символом - это не из-за его символьности, а из-за интерпретации хранящегося в нем значения как кода символа (или его части). И, если ввести в кодировке utf-8 в вводной поток символ кириллицы, то символ кириллицы не получится в char, потому что char - это лишь первый байт в представлении символа. Если посмотрите интерфейс стандартных потоков ввода-вывода (iostream), то увидите, что данные там читаются в char. Удивительно, бинарные данные и текстовый буфер! Увы, но char используется для работы с байтами и памятью с самых древних времен, когда еще даже указатели на void не изобрели.
0
|
|
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 20.02.2020, 11:58 | |
|
elenayagubova, почему? Ведь нет на самом деле никаких символов - это лишь вопрос интерпретации данных который целиком и полностью в ведении программиста, в char лежит число, хотите чтобы это был: октет IP-адреса, код символа в той или иной однобайтовой кодировке (к стати какую кодировку вы предпочитаете?), число (одно из 256 вариантов), интенсивность красного, зеленого или синего в rgb-color - пожалуйста, для всего этого используется тип char и то, что потоковый ввод вывод для char определен разработчиками как символьный ничего не значит, ведь они его сами и перегрузили для char, а по сути iostream - это тоже поток байт. А по Вашей логике и int не int с точки зрения потоков в/в.
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 20.02.2020, 12:45 | |
|
Croessmah, я вот к примеру введу 48 в int, каким образом символьное 48 станет численным?
0
|
|
|
129 / 1 / 1
Регистрация: 16.12.2019
Сообщений: 33
|
|
| 20.02.2020, 12:59 | |
|
Кинь свой код, чего он у тебя вылетает интересно.
0
|
|
|
Неэпический
|
|||||||
| 20.02.2020, 14:12 | |||||||
|
Без учета возможных переполнений и тому подобного:
0
|
|||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
|
|||||||||||||||
| 20.02.2020, 15:55 | |||||||||||||||
|
Проверил: действительно сойдет:
0
|
|||||||||||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 20.02.2020, 15:59 | |
|
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
|
|
| 20.02.2020, 16:57 | |
|
0
|
|
|
Неэпический
|
|
| 20.02.2020, 17:10 | |
|
1
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
|
||
| 20.02.2020, 18:40 | ||
|
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||||
| 20.02.2020, 18:51 | |||||||
0
|
|||||||
|
Неэпический
|
|
| 20.02.2020, 18:51 | |
|
COKPOWEHEU, вы знаете о strict aliasing?
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,099
|
|||||
| 20.02.2020, 19:38 | |||||
|
Про "подписанные символы" не слышал такого термина. Первая страница гугла тоже молчит.
0
|
|||||
|
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
|
||||
| 20.02.2020, 19:54 | ||||
|
Croessmah, с тем, что char - целочисленный тип и всем из этого следующим, я нигде и не спорила(что было бы, несомненно, очень глупо). Изначально я только писала о вводе и о том, что нельзя считать char в этом случае обычным числом - вводится символ. 10 - не символ. При вводе 10 в переменную char запишется код 1, а код 0 останется в потоке. Это не единое число, а два отдельных символа. А вот при вводе 10 в int, оба символа интерпретируются как единое число.
Annemesski, char ch; cin >> ch;, очень даже значит. Я обязана понимать, что при вводе 10 в ch будет записан код символа '1', а не число 10. А это все, что я пыталась сказать в своем изначальном сообщении - не больше и меньше.COKPOWEHEU, cin >> ch; В этом примере я бы то же самое говорила при использовании спецификатора %c - нельзя получить с его помощью число, введенное с клавиатуры.
0
|
||||
| 20.02.2020, 19:54 | |
|
Не могу преобразовать тип char в тип double Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ? Присвоить переменной char m значиние переменной int i.. тип char Тип char и указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|