3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
|
|
1 | |
Как запретить компилятору неявное преобразование из числового типа в символьный?09.08.2008, 23:29. Показов 2594. Ответов 6
Метки нет (Все метки)
У мя возникла такая проблема: я ввожу данные типа char и мне надо быть уверенным, что я ввел именно символ, т.е. если я ввожу число мне нужно об этом как-то узнать...это было бы легко сделать, если запретить компилятору преобразовывать из числового типа в символьный. Это реально сделать и как? Спасибо.
0
|
09.08.2008, 23:29 | |
Ответы с готовыми решениями:
6
Неявное преобразование типа int в bool. Как исправить? Преобразование типов из числового в символьный Неявное преобразование типа Обобщения. Неявное преобразование типа невозможно |
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
10.08.2008, 00:11 | 2 |
Думаю,проблема не в этом. Цифра есть символ. Попробуйте оспорить.
Как следствие того,что цифра - символ,компилятор ничего не преобразовывает. Проверить,является ли символ цифрой - очень просто. Код
сhar c; cin >> c; if ( (c>='0') && c <='9') ; // введена цифра. else ; //введена не цифра
0
|
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
|
|
10.08.2008, 00:54 | 3 |
а еще есть функции itoa() и atoi(). собссно переводят из целых чисел в строки и наоборот. вот только я забыл какой хедер нужен
0
|
3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
|
|
10.08.2008, 01:03 [ТС] | 4 |
Мне просто надо отследить ошибку ввода, если я вместо символа введу например 2-х значное число, то cin.good() не реагирует..
0
|
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
|
|
10.08.2008, 01:17 | 5 |
0
|
93 / 2 / 0
Регистрация: 12.06.2008
Сообщений: 84
|
|||||||||||
10.08.2008, 14:33 | 6 | ||||||||||
Ещё можно заметит закономерность того, что при приведении какого либо символа к целочисленному типу, он возвращает отрицательное число.
Следовательно:
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
10.08.2008, 15:06 | 7 |
Это утверждение неверно.
Во-первых, символы английского алфавита, цифры, знаки препинания и т.д. имеют ASCII-коды в диапазоне 0x00-0x7F, и эти символы при приведении к int всегда будут давать положительное число. А вот с символами в диапазоне 0x80-0xFF (буквы русского алфавита и разные спецсимволы) все хитрее - зависит от опции default char type - signed или unsigned. Если по умолчанию символьный тип беззнаковый, то и эти символы будут всегда давать положительное число. А вот если знаковый - то отрицательное.
0
|
10.08.2008, 15:06 | |
10.08.2008, 15:06 | |
Помогаю со студенческими работами здесь
7
Неявное преобразование типа данных через структуры Быстрое преобразование Фурье и ошибка "Неявное преобразование типа" Что значит неявное преобразование типа string[] в char[] невозможно? Неявное преобразование типа int в bool невозможно. Код прилагается Неявное преобразование типа данных date в int недопустимо - проблемы с кавычками Ошибка при сборке: Неявное преобразование типа 'string' в 'System.Windows.Forms.DataGridViewTextBoxColumn' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |