Программирование видеоадаптеров CGA, EGA и VGA

       

Функции putchar() и putc()


Эти функции помещают один символ в текущую позицию выходного потока. Прототипы функциий представлены ниже:

int putc( int ch, FILE *stream );

int putchar( int ch );

Функция putc() отличается от putchar() наличием второго аргумента, который определяет выходной поток, в который помещается символ. Она может использоваться и для записи символов в открытый файл и для записи в стандартные потоки ввода-вывода. В частности, если второй аргумент функции равен константе stdout, то она эквивалентна функции putchar() и выводит символ в стандартный выходной поток. Этот поток может идти на экран дисплея или в файл, если используется свойство переназначения потока. Фактически функция putchar() является макроопределением:

#define putchar(_c) putc((_c),stdout)

Первые параметры обеих функций совпадают по смыслу и задают ASCII-код выводимого символа (не смотря на то, что переменная ch целого типа, используется только ее младший байт). При этом функции обрабатывают управляющие символы. Список управляющих символов приведен в таблице 13.1:

Символ Код ASCII Значение

\a 07h звуковой сигнал

\b 08h перемещение назад

\f 0Ch переход к новой странице

\n 0Ah новая строка

\r 0Dh возврат каретки

\t 09h горизонтальная табуляция

\v 0Bh вертикальная табуляция

\' 27h символ кавычки

\" 22h двойная кавычка

\\ 5Ch обратный слеш

\% 25h знак процента

Таблица 13.1 Управляющие символы.

Функции возвращают ASCII-код выведенного символа, а в случае ошибки возвращают константу EOF. Чтобы конкретизировать ошибку можно воспользоваться функцией ferror().

// использование функци putchar()

#include <stdio.h>

void main(void) {

char *ptr, out_str[] = "\aputchar\nputc\a";

for(ptr = out_str; *ptr; putchar(*(ptr++)) ); }

Включаемый файл stdio.h содержит спецификации функций putchar() и putc(). Следовательно, этот файл необходимо включать во все программы, использующие данные функции.



Содержание раздела