#cpp #mingw
Поставил кодировку utf-8: SetConsoleCP(CP_UTF8); SetConsoleOutputCP(CP_UTF8); Вывожу текст в потоке: cout << "Введите первое число: a = "; А консоль выдает мне вот это: ��ведите первое число: a = Пытался искать информацию в тырнете, ничего, к сожалению, не нашел, возможно неправильно искал. Помогите пожалуйста решить проблему.
Ответы
Ответ 1
Это происходит из-за того, что низкоуровневые WinApi функции для вывода строк в консоль в UTF-8 ожидают завершенную строку. Такие функции как puts выведут вашу строку корректно. А вот вывод через basic_ostream::operator<<(char*) вероятно для строки "Введите первое число: a = " cначала вызывает winapi с первым байтом двухбайтового символа В, затем со вторым и остатком строки, что отображается как: ��ведите первое число: a =
Комментариев нет:
Отправить комментарий