Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
256 Кб
Скачать

Лекция №4

3. ФУНКЦИИ СТАНДАРТНОГО И ФОРМАТНОГО ВВОДА-ВЫВОДА

3.1. Основы ввода-вывода в языке С

Функции ввода-вывода можно разделить на 4 группы:

  1. функции посимвольного ввода-вывода, за одно обращение к которым переносится один символ;

  2. функции построчного ввода-вывода, за одно обращение к которым переносится ASCIIZ–строка символов;

  3. функции блокового ввода-вывода, за одно обращение к которым переносится целый блок(или запись) информации;

  4. функции форматированного ввода-вывода, при выполнении которых осуществляется присваивание значений переменным(ввод) или вывод представления переменных в поток.

Различают функции стандартного ввода-вывода, которые предназначены для ввода-вывода данных с клавиатуры. Кроме того отметим, что в стандартной библиотеке ввода/вывода некоторые "функции" на самом деле могут быть макросами. Это позволяет избежать накладных расходов на обращение к функции для обработки каждого символа. 

Обращение к стандартной библиотеке.

Каждый исходный файл, который обращается к функции из стандартной библиотеки, должен вблизи начала содержать строку

#include <stdio.h> или(и) #include <conio.h>

В файлах stdio.h и conio.h определяются некоторые макросы и переменные, используемые библиотекой ввода/вывода. Использование угловых скобок вместо обычных двойных кавычек - указание компилятору искать этот файл в справочнике, содержащем заголовки стандартной информации (на системе UNIX обычно lusrlinelude).

Самостоятельная проработка:

3.1.1. Функции посимвольного ввода-вывода

3.1.1.1.Функции посимвольного ввода

В случае успеха функции возвращают прочитанный символ после его преобразования в 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.

Функции посимвольного стандартного ввода Функция getchar

Самый простой механизм ввода заключается в чтении по одному символу за раз из "стандартного ввода", обычно с терминала пользователя, с помощью функции getchar.

Форма записи:

#include <stdio.h>

int getchar(void);

Функция getchar() при каждом к ней обращении возвращает следующий вводимый символ. В большинстве сред, которые поддерживают язык С++, терминал может быть заменен некоторым файлом с помощью обозначения < : если некоторая программа prog использует функцию getchar то командная строка

prog < infile

приведет к тому, что prog будет читать из файла infile, а не с терминала. Переключение ввода делается таким образом, что сама программа prog не замечает изменения; в частности строка"<infile" не включается в командную строку аргументов в argv. Макро getchar идентична getc(stdin).

Пример:

#include <stdio.h>

int main(void)

{ char ch;

printf("Enter a character followed by <Enter>: ");

ch = getchar();

printf("The character read is: '%c'\n", ch);

return 0;

}

Функция fgetchar

Функция

#include <stdio.h>

int fgetchar(void);

читает отдельный текущий символ из стандартного потока stdin и увеличивает cсоответствующий указатель (если он есть) для указания следующего считываемого символа. Функция fgetchar является эквивалентной функции fgetc(stdin).

Пример:

#include <stdio.h>

int main(void)

{ char ch;

printf("Enter a character followed by <Enter>: ");

ch = fgetchar();

printf("The character read is: '%c'\n", ch);

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]