Функция ungetc
Функция
#include <stdio.h>
int ungetc(int c, FILE *stream);
возвращает символ c в заданный поток ввода stream. Stream должен быть буферизованным и открытым для чтения. Последующая операция чтения из stream начинается с символа c. EOF вернуть в поток посредством использования ungetc нельзя. Эта функция возвращает значение ошибки, если из stream ничего не прочитано или если c назад не возвращен. Символы, размещаемые в потоке посредством ungetc, могут быть уничтожены, если функции fseek или rewind вызваны перед считыванием символа из stream.
Пример:
#include <stdio.h>
#include <ctype.h>
int main( void )
{
int i=0; char ch;
puts("Input an integer followed by a char:");
while((ch = getchar()) != EOF && isdigit(ch))
i = 10 * i + ch - 48; /* convert ASCII into int value */
if (ch != EOF) ungetc(ch, stdin);
printf("i = %d, next char in buffer = %c\n", i, getchar());
return 0;
}
Функции посимвольного вывода
Функция | Назначение |
#include <stdio.h> int fputchar(int c); | Помещает символ в файл стандартного вывода stdout |
#include <stdio.h> int putchar(int c); | Помещает символ в файл стандартного вывода stdout. Является макроопределением через функцию putc(). |
#include <stdio.h> int putc(int c, FILE *stream); | Помещает символ в открытый файл, описываемый переменной типа FILE, на которую указывает fp. Является макроопределением через функцию _fputc(). |
#include <stdio.h> int fputc(int c, FILE *stream); | Помещает символ в открытый файл, описываемый переменной типа FILE, на которую указывает fp. |
#include <conio.h> int putch(int c); | Выводит символ в текущей позиции текстового окна экрана. |
Функции стандартного вывода
Функция putchar
Вывод можно осуществлять с помощью функции putchar(c).
Форма записи:
#include <stdio.h>
int putchar(int c);
функции putchar(c) помещает символ 'c' в "стандартный ввод", который по умолчанию является терминалом. Вывод можно направить в некоторый файл с помощью обозначения > : если prog использует putchar, то командная строка
prog > outfileприведет к записи стандартного вывода в файл outfile, а не на терминал.
Вывод, осуществляемый функцией printf, также поступает в стандартный вывод, и обращения к putchar и printf могут перемежаться.
Пример:
#include <stdio.h>
main()
{ char c;
c=getchar();
putchar(c);
printf(“%d”,c);
}
Результат:
а
а224
В данном примере показано неявное приведение типа char в тип int, в результате значение переменной с=’а’ преобразовывается в код этого символа, который равен 224.