Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2019, 17:32   #1
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию Как нормально отобразить русские буквы?

Здравствуйте. Как сделать так чтобы в консоли нормально выдавало код русской буквы? Пока получается фигня какая-то. - Выдает ромбик в вопросе.
https://rextester.com/PFZD17961
Код:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
  setlocale(LC_ALL, "Russian");
      
  string name;
  cout << "Введите Ваше имя?\n";
  cin >> name;
  cout << "Привет, " << name << "!\n";
  
  cout << "1 буква = " << static_cast<unsigned char>(name[0]) << "\n";
  cout << "2 буква = " << (unsigned char)name[1] << "\n";   
  
  system("pause");
  return 0;
}
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 02.05.2019, 17:42   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

setlocale вроде не поможет если не стоит русская локаль в настройках винды (региональные настройки, последняя вкладка и т.д.)

Зачем unsigned char?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 02.05.2019 в 17:44.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2019, 17:44   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Ну как код-то посмотреть?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 02.05.2019, 17:48   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Еще в винапи есть SetConsoleCP, SetConsoleOutputCP.

Ну и не кастуйте к unsigned char для начала.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2019, 17:51   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Ну я тут еще пару компиляторов скачал:
1) Borland C++ 5.02 для Windows, там вообще русские буквы не хочет вводить в программу, как решить?

2) Borland C++ 3.1 идет в комплекте с DosBox, но какой-то глючный вообще. Сегодня я 1-ый раз попробовал вводить в программу русские буквы - они вводятся, но обратно на английский клавиатура уже не переключается, как решить?
2-ой раз попробовал - вообще уже даже русский язык не включается. Что за глюки? Это вообще все можно решить?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 02.05.2019, 18:04   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

По ссылке выше у вас буквы не выводятся потому что там utf-8 и русские буквы занимают 2 байта.
Код:
cout << name.size();
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2019, 18:05   #7
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
потому что там utf-8 и русские буквы занимают 2 байта.
- так UTF-8 - 8 бит, 1 байт, не так что ли?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 02.05.2019, 18:06   #8
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

А, 2 байта, правда. Так это UTF-16 что-ли получается?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 02.05.2019, 18:09   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В любой кодировке юникода русские буквы не занимают 1 байт.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2019, 18:14   #10
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Вот так уже ближе к теме?
https://rextester.com/XHWA80691
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отобразить нормально кирилицу в alert в файле (js) SevenXP JavaScript, Ajax 2 09.10.2012 20:27
Отобразить русские буквы. InkBlack Помощь студентам 2 29.09.2011 20:12
Русские буквы morgan97 Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2011 10:15
DEV С++ и русские буквы. BitMaster Помощь студентам 2 30.08.2010 10:31
Русские буквы в dev c++ bull Общие вопросы C/C++ 3 22.09.2008 20:28