0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 44
|
||||||
1 | ||||||
Помещение русских символов в vector<char>11.02.2018, 15:41. Показов 6175. Ответов 6
При попытке заполнить вектор русскими символами выдаёт ошибку, с английскими таких проблем нет, но по заданию нужны русские
Вот код
error: narrowing conversion of ‘53425’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] vector<char> zs{'б', 'в', 'г', 'д', 'ж', 'з', 'л', 'м', 'н', 'р'}; ^ error: narrowing conversion of ‘53424’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] vector<char> gl{'а', 'е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'};
0
|
11.02.2018, 15:41 | |
Ответы с готовыми решениями:
6
Запись русских символов в char Ввод русских символов в char* с консоли При вводе в массив char русских символов они изменяются Запись в vector<vector<char>> |
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 44
|
|
11.02.2018, 16:09 [ТС] | 3 |
русские символы принимает, но выводит вопросы
замена char на unsigned char проблему не решает
0
|
4 / 2 / 2
Регистрация: 11.02.2018
Сообщений: 24
|
|
11.02.2018, 16:34 | 4 |
Попробуйте переписать для юникод. Вместо char - wchar_t, string - wstring, getline(cin, S) - getline(wcin, S), stringstream S - wstringstream S и т.д.
Добавлено через 3 минуты Только если будете работать с файлами, то там тоже надо писать вместо обычных stream'ов юникодские stream'ы.
0
|
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
|
|
11.02.2018, 16:37 | 5 |
у вас кодировка русского символа не влезает в чар вот он и не доволен
0
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||||||
11.02.2018, 16:44 | 6 | |||||
Что значит принимает? Чтобы работал русский ввод:
Если используются функции cctype, то добавить setlocale(0, "") и приводить аргументы функций cctype к unsigned char.
0
|
║XLR8║
|
||||||
11.02.2018, 18:02 | 7 | |||||
Ameroh, https://www.joelonsoftware.com... o-excuses/ хорошая статья по кодировкам символов от CEO of Stack Overflow.
Если вкратце, есть таблица символов ASCII в которой 128 символов которые влазят в 7 бит и там только англ. буквы + еще символы. Так как байт это 8 бит, все начали использовать последний бит для расширения ASCII символами своего языка, и т.д. Есть еще таблица символов Unicode которая была разработана для унификации всех возможных символов. Замечу, что таблица символов указывает только на коды символов а не на их битовое представление, за это отвечают кодировки. В случает с Unicode это UTF-8, UTF-16, UTF-32. Можно было-бы сказать что в UTF-8 на каждому коду в Unicode соответсвует 8 бит, но нет. Вообще в UTF-8 разные символы занимают разное место. В следствии чего нельза обращаться с UTF-8 строкой как с строкой байт с ASCII кодами, так как мы не знаем сколько байт занимает какой символ в средине пока не прочитаем все предыдущие. Немного отошел от темы. Русские символы есть в разных таблицах символов, которые могут быть закодированы разными кодировками. setlocale(LC_ALL, "rus"); это пример того когда мы указываем консоли, что наша программа работает с определенной кодировкой и что байтовые последовательности нужно декодировать в соответсвии с ней. простого создания через конструктор достаточно, если надо 2 строки
2
|
11.02.2018, 18:02 | |
11.02.2018, 18:02 | |
Помогаю со студенческими работами здесь
7
Как настроить ввод русских символов и в дальнейшем вывод этих символов Чтение русских символов. Отрицательные значения у символов Инициализация vector<char> Unsigned char to vector Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |