Превышение допустимого числа символов в символьной константе

Я изучаю C ++, и я не могу обойти эту проблему,

всякий раз, когда я пытаюсь запустить его, я получаю эти ошибки. Плюс это ответ моего лектора

Решение

Проблема в том, что у вас вместо кавычек ASCII есть кавычки в Юникоде; возможно, ваш редактор автоматически изменил их, или вы скопировали текст с сайта, который делает это автоматически, в своем авторском программном обеспечении. Замените кавычки на обычные кавычки ASCII (0x22, «), и это должно работать.

Другие решения

Вы, кажется, используете неправильные символы кавычек. Если я изменю то, что вы должны:

У меня нет проблем компиляции (VC ++ 2015).

Это может зависеть от настроек клавиатуры, какие символы кавычек используются.

Попробуйте установить компоновщик на «Нет», чтобы увидеть, появляется ли ошибка по-прежнему

Превышение допустимого числа символов в символьной константе. Too many characters in character literal

Предпринята попытка инициализировать константу char с несколькими символами. An attempt was made to initialize a char constant with more than one character.

CS1012 может также произойти при выполнении привязки данных. CS1012 can also occur when doing data binding. Например, следующая строка кода вызывает эту ошибку: For example the following line will give an error:

Попробуйте использовать вместо нее следующую строку: Try the following line instead:

Следующий пример приводит к возникновению ошибки CS1012: The following sample generates CS1012:

Символьные литералы – это один или несколько символов, заключенных в апострофы: ’A’, ’я’, ’+’, ’
’.

Примеры различного определения символьной константы:

const char c=’1′; //символ ‘1’
const char d=49; //задание символа ‘1’ его ASCII-кодом

Перед начальным апострофом может размещаться буква L. Между апострофами может быть записан произвольный символ, кроме , ‘, “, ?. Эти символы записываются в виде ESC-последовательностей: \, ’, ”, ?.

Читайте также:  Как проверить загрузку видеокарты и процессора

Ординарная односимвольная константа имеет тип char, записывается без ведущего символа L, состоит из одного символа. Ее значение эквивалентно числовому значению из применяемой в реализации кодовой таблицы символов (например, на IBM-совместимых компьютерах, таблицы кодов ASCII). Ординарная мультисимвольная константа имеет тип int и состоит из нескольких символов (ее значение зависит от реализации).

Константа, включающая ведущий символ L, имеет тип wchar_t и называется широкой (широкосимвольной). Значением широкой константы из одного символа является числовое значение кода из применяемой в реализации кодовой таблицы символов. Значение широкой константы из нескольких символов зависит от реализации.

Символьная константаможет использоваться как целая константа, причем ее значением является интерпретация внутреннего представления данного символа в виде целого значения. Символьная константа не может быть пустой.

Для визуального представления неграфических символов используются ESC-последовательности, записываемые между апострофами. ESC-последовательность начинается символом обратной дробной черты ( — backslash) и может быть представлена:

переход на новую строку (
),
горизонтальная табуляция ( ),
возврат каретки (
),
звонок (a),
обратная дробная черта (\),
возврат на один шаг (backspace, );
нуль-символ окончания строки в С++(NULL) ‘’

· числом из 1 .. 3 восьмеричных цифр, определяющим код символа; ‘ooo’, где ooo – восьмеричные цифры, представляющие символ в таблице кодов ASCII (восьмеричное число в диапазоне от 0 до 377, превышение приводит к ошибке);

· числом из 1-3 шестнадцатеричных цифр, определяющим код символа,(с предшествующей буквой X или х); так можно представить и печатаемый символ (за x может быть записано любое количество шестнадцатеричныхцифр, однако значение не должно выходить за диапазон 0x00-0xFF). Любой неподходящий символ последовательности ооо или хhhh считается концом восьмеричного или соответственно шестнадцатеричного кода.

‘x27’ – АSCII-код символа апострофа;

‘xa’ – АSCII-код символа перехода на новую строку;

Читайте также:  Thunderbird занимает много места на диске

‘40’ – АSCII-код пробела;

Таблица 2.5. Управляющие последовательности
(
основные ESC-последовательности):

содержание последовательность обозначение значение
новая строка NL (LF) 0ха
возврат каретки CR 0хd
звонок a BEL 0х7
горизонтальная табуляция HT 0х9
вертикальная табуляция v VT 0хb
возврат на шаг  BS 0х8
перевод формата f FF
обратная косая черта \ 0х5с
апостроф 0х27
двойная кавычка 0х22
знак вопроса ? ?
нулевой символ ‘’ NULL
восьмеричный код ооо ооо
шестнадцатеричный код хhhh hhh

Вычислить размеры памяти, выделенной для символьных констант разных типов, помогут, например, операторы:

Дата добавления: 2015-06-25 ; Просмотров: 269 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет