Символы отображаются на неправильном языке

Я работаю над проектом для университета, используя c.

Нам дали основу для проекта (базовая реализация графического интерфейса с использованием BGI).

По какой-то причине весь текст в окнах дисплея выводится иероглифами Юго-Восточной Азии.

Символы отображаются на неправильном языке

Вот код, который я сейчас использую для этого (ну, по крайней мере, то, что кажется актуальным),

#include <graphics.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

void startScreen() {
   settextstyle(EUROPEAN_FONT, 0, 16);
   outtextxy((getmaxx() / 2) - (textwidth("TOWER OF POWER") / 2), 0, "TOWER OF POWER");
   outtextxy((getmaxx() / 2) - (textwidth("PRESS ANY KEY")/2), getmaxy() - textheight("PRESS ANY KEY"), "PRESS ANY KEY");

   tower();

   readkey();
   clearviewport();
}

void main(void) {
    // Initialise graphic window (x = 639 , y = 479)
    int gd = DETECT, gm = 0;
    initgraph(&gd, &gm, "");
    startScreen();
}

Заранее спасибо за помощь.

Yikes Почему я продолжаю читать об университетах, использующих компиляторы C более чем 20-летней давности.

David Hoelzer 27.02.2019 23:11

Добро пожаловать в StackOverflow! Не могли бы вы уточнить: а) какой компилятор и его версия?, б) BGI графический интерфейс Borland - это правильно? в) какая ОС и версия? @DavidHoelzer Я тоже не могу поверить - я использовал BGI, будучи студентом, и это было .. 26 лет назад! Вау!

Alex Yu 27.02.2019 23:36

заголовочный файл: conio.h строго для ОС Windows. т.е. это не портативно. Предложите использовать стандартные функции библиотеки C для ввода-вывода с пользователем и не использовать conio.h

user3629249 28.02.2019 04:17

вот почему вы получаете неожиданный шрифт: settextstyle(EUROPEAN_FONT, 0, 16);

user3629249 28.02.2019 04:21

размещенный код включает stdlib.h дважды, почему?

user3629249 28.02.2019 04:23

включать файлы заголовков, содержимое которых не используется, является плохой практикой программирования. Предложите удалить утверждение: #include <math.h>

user3629249 28.02.2019 04:24

относительно: void main(void) { В современном C есть только две действительные подписи для main() Обе они имеют возвращаемый тип int, а не void

user3629249 28.02.2019 04:28

@AlexYu A) Visual Studio 2017 15.9.5 (но у других, использующих версию 2015 года, та же проблема) B) Да, я даже не собираюсь вдаваться в то, насколько разочаровывает этот класс (серьезно, у меня был урок программирования в прошлом семестре и 2 в этом семестре и они еще изучают основы (как делать математику)) в) windows 10 pro 1809

jbreaper 28.02.2019 09:42

@user3629249 отвечает в порядке комментариев 1) Он не должен быть переносимым, и, если я правильно помню, я использовал некоторые его функции. 2) Я не заметил stblib.h, спасибо, исправлю, но основная проблема существовала до того, как я добавил вторую. 3) Как я уже сказал, я включил только соответствующий код, math.h используется в коде. 4) Эту часть программы мне дал лектор.

jbreaper 28.02.2019 09:46

@user3629249 user3629249 извините, не увидел settextstyle(EUROPEAN_FONT, 0, 16); не уверен, что вы имеете в виду, я пробовал использовать разные шрифты, но все еще получаю нелатинские символы

jbreaper 28.02.2019 09:54

@AlexYu Я считаю, что выяснил возможную причину проблемы, я думаю, что она использует шестнадцатеричные значения ascii и пытается поместить их в Unicode. я нашел это, проверив шестнадцатеричный ascii для двух букв, объединив их и поместив результат в средство проверки Unicode. это не точный символ, но кажется, что при этом все символы помещаются в разделы CJK юникода.

jbreaper 07.03.2019 11:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
11
65
0

Другие вопросы по теме