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