Cprintf: различия между версиями
(http://www.buyvaliumdiazepam.org/#24957 buy diazepam with no prescription - buy generic valium) | Synergy (обсуждение | вклад) | ||
(не показано 14 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
− | + | <metadesc>Функция ElfPack2, выводит на консоль форматированную строку. При этом, если EnableConsole = 1, консоль появится на экране.</metadesc> | |
− | + | == Объявление == | |
+ | '''<tt>void cprintf( const char * format, ... );</tt> | ||
− | + | == Описание == | |
+ | Функция [[ElfPack2]], выводит на консоль форматированную строку. | ||
+ | При этом, если EnableConsole = 1, консоль появится на экране. | ||
− | + | Является аналогом функции <tt>printf</tt> библиотеки С stdio. | |
− | + | == Параметры == | |
+ | Описание параметров форматирования см. здесь: [http://ru.wikipedia.org/wiki/Printf printf]. | ||
+ | |||
+ | cprintf (также как и [[cprint]]) поддерживает стандартный набор символов ASCII из нижнего диапазона (цифры, знаки препинания, латинские буквы), кириллические буквы согласно кодировке cp1251, а также псевдографические символы cp866 (DOS) - но их коды смещены на -0x20 относительно стандартного расположения. | ||
+ | |||
+ | Поможет ориентироваться с cp866 программа charmap, входящая в комплект поставки Windows (Accesories/System Tools/Character Map). | ||
+ | Переключите её в "Advanced view" и выберите Character set: "DOS: United States". Символы в промежутке от 0xB0 до 0xDF в кодировке cprint(f) расположены в 0x90--0xBF. | ||
+ | |||
+ | Кроме этого, cprint(f) поддерживает цветовое выделение текста. Для этого используются 16 цветов [http://ru.wikipedia.org/wiki/CGA CGA палитры], закодированные в виде управляющих символов 0x80+номер_цвета. | ||
+ | |||
+ | Например, чтобы все символы после текущего окрашивались в тёмно-красный цвет (0x4), нужно написать символ "\x84" | ||
+ | |||
+ | Чтобы ввести специальный символ (псевдографика или цвет), нужно добавить в общей строке "\x<код_символа>" (см. пример), однако с вводом кодов часто возникают проблемы компиляции, поэтому рекомендуется изолировать спецсимволы от текста с помощью дополнительных кавычек: | ||
+ | *"\x8AComplete" - не скомпилируется (найдено число 0x8AC) | ||
+ | *"\x8A""Complete" - так правильно | ||
+ | |||
+ | == Пример == | ||
+ | <pre> | ||
+ | INT32 value = 10; | ||
+ | |||
+ | // Напишем красным и со значком "█" | ||
+ | cprintf("\x84\xBB""value = %d\n", value); | ||
+ | </pre> | ||
+ | |||
+ | == См. также == | ||
+ | [[cprint]] | ||
+ | |||
+ | [[ldrToggleConsole]] | ||
+ | |||
+ | |||
+ | [[Категория:Функции ElfPack2]] |
Текущая версия на 04:30, 4 апреля 2019
Содержание
Объявление
void cprintf( const char * format, ... );
Описание
Функция ElfPack2, выводит на консоль форматированную строку. При этом, если EnableConsole = 1, консоль появится на экране.
Является аналогом функции printf библиотеки С stdio.
Параметры
Описание параметров форматирования см. здесь: printf.
cprintf (также как и cprint) поддерживает стандартный набор символов ASCII из нижнего диапазона (цифры, знаки препинания, латинские буквы), кириллические буквы согласно кодировке cp1251, а также псевдографические символы cp866 (DOS) - но их коды смещены на -0x20 относительно стандартного расположения.
Поможет ориентироваться с cp866 программа charmap, входящая в комплект поставки Windows (Accesories/System Tools/Character Map). Переключите её в "Advanced view" и выберите Character set: "DOS: United States". Символы в промежутке от 0xB0 до 0xDF в кодировке cprint(f) расположены в 0x90--0xBF.
Кроме этого, cprint(f) поддерживает цветовое выделение текста. Для этого используются 16 цветов CGA палитры, закодированные в виде управляющих символов 0x80+номер_цвета.
Например, чтобы все символы после текущего окрашивались в тёмно-красный цвет (0x4), нужно написать символ "\x84"
Чтобы ввести специальный символ (псевдографика или цвет), нужно добавить в общей строке "\x<код_символа>" (см. пример), однако с вводом кодов часто возникают проблемы компиляции, поэтому рекомендуется изолировать спецсимволы от текста с помощью дополнительных кавычек:
- "\x8AComplete" - не скомпилируется (найдено число 0x8AC)
- "\x8A""Complete" - так правильно
Пример
INT32 value = 10; // Напишем красным и со значком "█" cprintf("\x84\xBB""value = %d\n", value);