Как создать собственный персонаж в Turbo C ++ - PullRequest
4 голосов
/ 29 июля 2011

Я дошел до точки в C ++, где мне нужен пользовательский символ. Я попытаюсь объяснить, что я хочу сказать: как вы, ребята, уже знаете, символы в текстовом режиме представляют собой шаблоны точек, например, «А»:

0000001000000
0000010100000
0000100010000
0001000001000
0001000001000
0001111111000
0001000001000
0001000001000
0001000001000

... где 1 представляют активную точку, а 0 неактивны. Я хочу знать, как мне самому создать такого персонажа. Мне сказали, что есть способ (не проходя через огромный беспорядок), но я не был полностью направлен. Я надеюсь, что я получу помощь здесь. спасибо.

Ответы [ 3 ]

3 голосов
/ 29 июля 2011

Предполагая, что вы нацелены на DOS в текстовом режиме - читайте по прерыванию 10h, AH 11h. Это позволяет загружать определенные пользователем символы в память генератора символов. Смотрите здесь: http://webpages.charter.net/danrollins/techhelp/0151.HTM

Я не думаю, что Turbo C имеет функцию-обертку для этого конкретного вызова. Для непосредственного вызова прерываний используйте функцию int86 ().

2 голосов
/ 29 июля 2011

Если вам нужен двойной горизонтальный символ строки, который занимает весь блок, чтобы строка проходила непрерывно, может помочь псевдографический символ 0xCD (=).

Это зависит от текущей кодовой страницы, но большинство национальных кодовых страниц (включая кириллицу 866) оставляют псевдографические символы без изменений.

Просто выведите строку 0xCD, посмотрите, как она выглядит.

for(i=0;i<20;i++)
    putchar(0xcd);
2 голосов
/ 29 июля 2011

Это касается памяти текстового режима видеоадаптера, вызовов BIOS int 10h и т. Д. Итак, 1990-е годы ... Большинство современных операционных систем не работают в текстовом режиме и используют шрифты TrueType (даже для «консольных» приложений, которые эмулировать текстовый режим).

...