Программирование видеоадаптеров


Функции 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 целого типа, используется только ее младший байт). Функции обрабатывают управляющие символы. Список управляющих символов приведен в следующей таблице:

Символ

Код ASCII

Значение

\a

07h

Звуковой сигнал

\b

08h

Перемещение назад

\f

0Ch

Переход к новой странице

\n

0Ah

Новая строка

\r

0Dh

Возврат каретки

\t

09h

Горизонтальная табуляция

\v

0Bh

Вертикальная табуляция

\'

27h

Символ кавычки

\"

22h

Двойная кавычка

\\

5Ch

Обратный слеш

\%

25h

Знак процента

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

Программа PUTCHAR (листинг 9.1) демонстрирует использование функции putchar.

Листинг 9.1. Файл PUTCHAR.C

// Использование функции 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. Следовательно, этот файл необходимо включать во все программы, использующие данные функции.




Начало  Назад  Вперед