Лекция №4
ФУНКЦИИ СТАНДАРТНОГО И ФОРМАТНОГО ВВОДА-ВЫВОДА
Основы ввода-вывода в языке С
Функции ввода-вывода можно разделить на 4 группы:
1) функции посимвольного ввода-вывода, за одно обращение к которым переносится один символ;
2) функции построчного ввода-вывода, за одно обращение к которым переносится ASCIIZ–строка символов;
3) функции блокового ввода-вывода, за одно обращение к которым переносится целый блок(или запись) информации;
Функции форматированного ввода-вывода, при выполнении которых осуществляется присваивание значений переменным(ввод) или вывод представления переменных в поток.
Различают функции стандартного ввода-вывода, которые предназначены для ввода-вывода данных с клавиатуры. Кроме того отметим, что в стандартной библиотеке ввода/вывода некоторые "функции" на самом деле могут быть макросами. Это позволяет избежать накладных расходов на обращение к функции для обработки каждого символа.
Обращение к стандартной библиотеке.
|
|
Каждый исходный файл, который обращается к функции из стандартной библиотеки, должен вблизи начала содержать строку
#include <stdio.h> или(и) #include <conio.h>В файлах stdio.h и conio.h определяются некоторые макросы и переменные, используемые библиотекой ввода/вывода. Использование угловых скобок вместо обычных двойных кавычек - указание компилятору искать этот файл в справочнике, содержащем заголовки стандартной информации (на системе UNIX обычно lusrlinelude).
Функции посимвольного ввода-вывода
Функции посимвольного ввода
В случае успеха функции возвращают прочитанный символ после его преобразования в int без учета знака.
Функции возвращают значение EOF в случае ошибки или когда попадают на конец файла, какой бы ввод они при этом не считывали. Стандартная библиотека полагает символическую константу EOF равной -1 (посредством #define в файле stdio.h), но проверки следует писать в терминах EOF, а не -1, чтобы избежать зависимости от конкретного значения.
Функция | Назначение |
#include <stdio.h> int getchar(void); | Возвращает символ из файла стандартного ввода. Является макроопределением через функцию getc(). |
#include <stdio.h> int _fgetchar(void); | Возвращает символ из файла стандартного ввода. |
#include <stdio.h> int fgetc(FILE *stream); | Возвращает символ из открытого файла, описываемого переменной типа FILE, на которую указывает stream. |
#include <stdio.h> int getc(FILE *stream); | Возвращает символ из открытого файла, описываемого переменной типа FILE, на которую указывает stream. Является макроопределением через функцию _fgetc(). |
#include <conio.h> int getch(void); | Выполняет ввод символа с клавиатуры без эхо- отображения на экране. |
#include <conio.h> int getche(void); | Выполняет небуферизуемый ввод символа с клавиатуры с эхо- отображением на экране. |
#include <conio.h> int ungetch(int ch); | Записывает непосредственно в буфер клавиатуры символ ch. |
#include <stdio.h> int ungetc(int c, FILE *stream); | Возвращает символ int c назад в поток stream. Следующая операция чтения из файла stream будет возвращать символ c. |
|
|