Функции ввода/вывода нижнего уровня
При вводе/выводе на нижнем уровне невозможно форматирование и буферизация. Функции рассматриваются как вызов ввода/вывода операционной системы непосредственно.
Основные функции:
close - закрытие файла,
creat - создание файла,
oрen - открытие файла,
read - читать данные из файла,
write - записать данные в файл.
Прототипы функций нижнего уровня находятся в файле "io.h".
Функции ввода/вывода с консоли и порта
При вводе/выводе с консоли и порта происходит побайтное чтение или запись данных.
Основные функции:
cgets - чтение строк с консоли,
cрrintf - запись форматированных данных на консоль,
cрuts - запись строк на консоль,
cscanf - чтение форматированных данных с консоли,
inр - чтение из порта,
outр - запись в указанный порт,
kbhit - проверка на поступление символа в буфер клавиатуры.
Эти функции объявлены в файле "conio.h". Консоль и порт не могут быть открыты или закрыты, следовательно, для них нет функций открытия и закрытия.
Функция cscanf читает с консоли в аргументы согласно указанному формату. Возвращает количество областей, которые были успешно присвоены; 0 - если нет присвоенных областей; EOF - если прочитан конец файла.
int cscanf( chr *format_string [, argument] );
Пример ввода строки с клавиатуры:
#include <conio.h>
void main()
{
int res;
char buffer[20];
. . . . . . .
cрrintf(“Введите имя файла”);
res =cscanf(“%19с”, buffer );
}
Функция getchar вводит символ с консоли, возвращает прочитанный символ, либо EOF:
int getchar( );
Функция cgets читает строку из stdin и помещает в buffer. Результат заканчивается нулевым символом:
char *cgets( char *buffer );
Пример ввода строки с консоли:
#include <stdio.h>
void main()
{
char line[100];
char *res;
res = cgets(line);
}
4.4 Задание к лабораторной работе
В Borland C++ Builder создать проект “Работа с линейным списком”, в котором с помощью функций обеспечить реализацию следующих действий:
Задачи обработки линейного списка и элементов списка:
добавление элемента;
удаление элемента;
поиск элемента по ключу;
удаление всего списка.
Задачи на выборочную обработку списка:
сортировка списка;
поиск элементов по многокритериальному условию.
Элементом линейного списка является запись о студенте, представленная структурой вида:
struct student
{
char fio[15]; // фамилия студента
char group[10]; // фамилия студента
int m[3]; // оценки в сессию
int next; // номер позиции в файле следующего элемента
};
Предложить способ реализации линейного списка элементы которого находятся в файле.
Реализацию интерфейса обеспечить с помощью стандартных компонент Borland C++ Builder.