putc, putwc

Записывает символ в поток.

Синтаксис

int putc(
   int c,
   FILE *stream
);
wint_t putwc(
   wchar_t c,
   FILE *stream
);

Параметры

c
Символ, который требуется записать.

stream
Указатель на структуру FILE .

Возвращаемое значение

Возвращает записанный символ. Чтобы указать ошибку или условие окончания файла, а также putchar возвращать EOFи putwcputwchar возвращатьWEOF. putc Для всех четырех подпрограмм используйте ferror или feof проверка для ошибки или конца файла. При передаче указателя streamNULL вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение разрешено продолжать, эти функции возвращают EOF или WEOFзадают значение errnoEINVAL.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Подпрограмма putc записывает отдельный символ c в выходные данные stream в текущей позиции. Любое целое число может быть передано для putc, но записываются только младшие 8 битов. Подпрограмма putchar идентична putc( c, stdout ). Если возникает ошибка чтения, то в каждой подпрограмме для каждого потока устанавливается индикатор ошибки. putcи putchar аналогичны и соответственно реализуются как функции, так fputc_fputcharи макросы (см. Рекомендации выбора между функциями и макросами). putwc и putwchar — это версии putc и putchar с расширенными символами. putwc и putc ведут себя одинаково, если поток открыт в режиме ANSI. Функция putc на данный момент не поддерживает вывод данных в поток в кодировке Юникод.

Версии с суффиксом _nolock идентичны, за исключением того, что они не защищены от вмешательства другими потоками. Дополнительные сведения см. в разделе _putc_nolock, _putwc_nolock.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_puttc putc putc putwc

Требования

Маршрут Обязательный заголовок
putc <stdio.h>
putwc <stdio.h> или <wchar.h>

Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью, stdinstdoutи stderr, должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Все версии библиотек времени выполнения языка C.

Пример

// crt_putc.c
/* This program uses putc to write buffer
* to a stream. If an error occurs, the program
* stops before writing the entire buffer.
*/

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char *p, buffer[] = "This is the line of output\n";
   int  ch;

   ch = 0;
   /* Make standard out the stream and write to it. */
   stream = stdout;
   for( p = buffer; (ch != EOF) && (*p != '\0'); p++ )
      ch = putc( *p, stream );
}

Выходные данные

This is the line of output

См. также

Потоковый ввод-вывод
fputc, fputwc
getc, getwc