Итак, после публикации this question Я попытался использовать решения, предоставленные в связанных вопросах (в частности, this), которые были указаны сообществом, но у меня была другая проблема.c - функция _setmode, вызывающая ошибку отладки
При попытке использовать функцию _setmode()
, чтобы изменить консоль Windows для печати символов UTF, я получаю ошибку отладки, точно так же, как и сообщение, размещенное на this other question. Ошибка отладки выглядит следующим образом:
Текст:
Debug Assertion Failed!
Программа: ... Коут-Desktop_Qt_5_5_0_MSVC2013_64bit-Debug \ Debug \ Breakout.exe Файл: F: \ дд \ vctools \ элт \ crtw32 \ STDIO \ output.c Line: 1033
Expression: ((_Stream -> _ флаг & _IOSTRG) || (п = _fileno (_Stream), ( (_textmode_safe (п) == _IOINFO_TM_ANSI) & & _tm_unicode_safe (п)))!)
Для получения информации о том, как ваш программа может вызвать сбой утверждения, см. документацию Visual C++ по утверждениям ,
(Нажмите Retry для отладки приложения)
Скриншот:
Без функции _setmode()
Я до сих пор не может печатать символы из верхней таблицы ASCII, как эти : «┌──┐». Что я могу сделать для решения этой проблемы? Решение вопроса с той же проблемой также не работает.
Опять же, я использую Qt Creator для Windows, с Qt версии 5.5.0 MSVC 64 бит. Компилятор - это Microsoft Visual C++ Compiler 12.0 (amd64).
- Edit:
Вот небольшой пример кода, который вызывает ошибку:
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
int main(void)
{
//Using setmode to force the error
_setmode(_fileno(stdout), _O_U16TEXT);
printf("Hello World!\n");
return 0;
}
После выполнения появляется ошибка.
Не публикуйте только скриншоты! Опубликовать текст. – Olaf
Отредактировано для добавления сообщения об ошибке;) – JefersonFG
Возможно, вы можете опубликовать минимальную, полную программу, которая показывает проблему? –