- •Алфавит.
- •Объявления и определения
- •Структура и компоненты простой программы
- •Текст программы и препроцессор.
- •Структура программы.
- •Функция форматированного вывода.
- •Программы печати предельных констант.
- •Применимость вещественных данных.
- •Выделение лексем из текста программы.
- •2.2. Элементарные средства программирования Деление операторов языка Си на группы.
- •Программа оценки машинного нуля.
- •Трассировочная таблица
- •Переключатели
- •Ввод данных.
- •Вычисление объема цилиндра.
- •Операторы цикла
- •Три формы операторов цикла.
- •Приближенное значение экспоненты.
- •Оператор break.
- •Сумма отрезка степенного ряда.
- •Оператор continue.
- •Суммирование положительных чисел.
- •2.4. Массивы и вложение операторов цикла Массивы и переменные с индексами.
- •Вычисление среднего и дисперсии.
- •Упорядочение в одномерных массивах.
- •Инициализация массивов.
- •Моделирование многомерных массивов.
- •Ввод и вывод
- •7.1. Потоковый ввод-вывод
- •7.1.1. Открытие и закрытие потока
- •7.1.2. Стандартные файлы и функции для работы с ними
- •Ввод-вывод отдельных символов.
- •Ввод-вывод строк.
- •Форматный ввод-вывод.
- •Спецификаторы форматной строки для функции форматного вывода
- •Спецификаторы форматной строки для функции форматного ввода
- •Работа с файлами на диске
- •Двоичный (бинарный) режим обмена с файлами.
- •Строковый обмен с файлами.
- •Позиционирование в потоке.
- •Трехъязычный словарь "Цифры
- •7.2. Ввод-вывод нижнего уровня
- •7.2.1. Открытие / закрытие файла
- •7.2.2. Чтение и запись данных
- •7.2.3. Произвольный доступ к файлу
- •Теоретические положения Управление экраном в текстовом режиме в ms dos
- •Основные функции работы в текстовом режиме
- •2.5. Функции Определение функций.
- •Функция для вычисления объема цилиндра.
- •Функция для вычисления скалярного произведения векторов.
- •Обращение к функции и ее прототип.
- •Вычисление объема цилиндра
- •Вычисление площади треугольника.
- •Скалярное произведение векторов.
- •Препроцессорные средства
- •Глава 6. Структуры и объединения
- •6.1. Структурные типы и структуры Производные типы.
- •Структурный тип.
- •Определение структур.
- •Выделение памяти для структур.
- •Инициализация и присваивание структур.
- •Доступ к элементам структур.
- •Модули:
- •Некоторые понятия:
Трехъязычный словарь "Цифры
№ |
Английский язык |
Немецкий язык |
Французский язык |
1 |
ONE |
EINS |
UN |
2 |
TWO |
ZWEI |
DEUX |
3 |
THREE |
DREI |
TROIS |
4 |
FOUR |
VIER |
QUATRE |
5 |
FIVE |
FONF |
CINQ |
6 |
SIX |
SECHS |
SIX |
7 |
SEVEN |
SIEBEN |
SEPT |
8 |
EIGHT |
ACHT |
HUIT |
9 |
NINE |
NEUN |
NEUF |
Кроме рассмотренной функции fseek( ), в библиотеке функций языка Си находятся следующие функции для работы с указателями текущей позиции в потоке:
long ftelI(FILE *) - получить значение указателя текущей позиции в потоке;
void rewind(FILE *) - установить указатель текущей позиции в потоке на начало потока.
Необходимо иметь в виду, что недопустимо использовать функции работы с указателем текущей позиции в потоке для потока, связанного не с файлом, а с устройством. Поэтому применение описанных выше функций с любым из стандартных потоков приводит к неопределенным результатам.
7.2. Ввод-вывод нижнего уровня
Ввод-вывод, ориентированный на поток, обычно применяется для выполнения достаточно стандартных операций ввода-вывода. Применение рассмотренных выше функций обмена с потоками гарантирует успешность переноса программы (в отношении ввода-вывода) в различные операционные системы
Функции ввода-вывода более низкого уровня позволяют пользоваться средствами ввода-вывода операционной системы непосредственно. При этом не выполняются буферизация и форматирование данных. Программы, использующие низкоуровневый ввод-вывод, переносимы в рамках некоторых систем программирования Си, в частности, относящихся к UNIX. Учитывая близость функций низкоуровневого ввода-вывода к средствам ввода-вывода операционной системы, можно рекомендовать их применение для разработки собственной подсистемы ввода-вывода, например ориентированной на работу со сложными структурами данных (списки, деревья, сложные записи и т.п.).
При низкоуровневом открытии файла с ним связывается не указатель файла (потока), а дескриптор (handle) файла. Дескриптор является целым значением, характеризующим размещение информации об открытии файла во внутренних таблицах операционной системы. Дескриптор файла используется при последующих операциях с файлом.
В библиотеку языка Си включены следующие основные функции ввода-вывода нижнего уровня:
• open( )/cose( ) - открыть / закрыть файл;
• creat( ) -создать файл;
• read( )/write( ) - читать / писать данные;
• sopen( ) - открыть файл в режиме разделения, т.е. для одновременного доступа со стороны нескольких процессов (работающих программ);
• eof( ) - проверить достижение конца файла;
• Iseek( ) - изменить текущую позицию в файле;
• tell( ) - получить значение текущей позиции в файле.
Для работы с функциями нижнего уровня в программу должны включаться соответствующие заголовочные файлы. Имена этих файлов могут быть различными в разных операционных системах. Поэтому перед написанием программ, использующих функции ввода-вывода нижнего уровня, или при переносе программ в другую операционную систему необходимо ознакомиться с документацией по библиотеке Си для данной операционной системы.
Функции нижнего уровня в отличие от функций для работы с потоком не требуют включения в программу заголовочного файла stdio.h. Однако, этот файл содержит определения ряда констант (например, признак конца файла EOF), которые могут оказаться полезными. В случае применения этих констант файл stdio.h должен быть включен в программу.