АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Файлы последовательного доступа

Читайте также:
  1. Выписки из закона Украины для доступа на крышу
  2. Вычисление полного времени доступа.
  3. Дикторский текст литературного сценария фильма «Гибель империи. Византийский урок». – Режим доступа: www.pravoslavie.ru/jurnal/080211112807
  4. Информационное обеспечение. Файлы данных. Принципы передачи и кодирования информации.
  5. Нормативно-правовое регулирование работы с информацией ограниченного доступа.
  6. Обеспечение доступа к информационным ресурсам
  7. Организация доступа к файлам. Иерархический доступ к файлам. Понятие атрибутов доступа. Организация доступа к файлам различных ОС.
  8. Организующий фактор последовательного движения к цели рассматривают как
  9. Основные методы доступа
  10. Разграничение прав доступа пользователей
  11. Секции, проекции и проецируемые файлы.
  12. Скважина – цилиндрическая горная выработка, имеющая длину во много раз больше диаметра, сооружаемая без доступа в нее человека

Теоретические сведения

При последовательном доступе обмен информации производится через специальный буфер, резервируемый системой ввода-вывода. Компиляция языка СИ рассматривает ввод-вывод как поток файлов, которые поступают последовательно, байт за байтом. Каждый поток связывается с файлом на магнитном диске или с файлом, который поставлен в соответствии физическому устройству, например клавиатуре. Связь потока с файлом устанавливается при его открытии. Открытие файла осуществляется функцией fopen. Данная функция возвращает указатель на файл. Указатель на файл необходимо объявлять, например:

FILE * lst;

Здесь FILE-имя типа, описанное в стандартном определении stdio. h;

lst-указатель на файл (логическое имя).

Обращение к функции fopen в программе производится так:

lst= fopen (физическое имя файла, вид использования файла);

Физическое имя файла может, например, быть “prn”-для устройства печати;

“b:zni.f”-для файла zni.f на дискете b:

Вид исполнения.

Если файл открывается для записи или дополнения, но ещё не существует, то он создаётся. Открытие существующего файла для записи приводит к уничтожению его старого содержимого. Попытка прочитать несуществующий файл-это ошибка (fopen выдаёт указатель со значением NULL).

Для работы с файлами используются библиотечные функции fprintf, fscanf, fgets, fputs. Их применение рассмотрим ниже на примерах. После окончания работы с файлом он должен быть закрыт. Это делается с помощью библиотечной функции fclose, например:

fclose (lst)

lst-указатель на файл;

Рассмотрим организацию ввода информации на печатающее устройство:

/*Работа с файлами (вывод на печатающее устройство)*/

#include<stdio.h>

main ()

{ int i = 150;

FILE *lst;

/*lst-указатель на файл (объект типа FILE)*/

lst= fopen (“prn”,”w”);

/*lst получает адрес открытого файла с именем prn, предназначенного для записи в него информации (символ w);

prn-стандартное имя устройства печати, информация из файла с адресом lst будет выводится на печатающее устройство*/

fprintf(lst,”\n число i = %d\n”,i);

/*первый параметр функции fprintf-это указатель на соответствующий файл; на печать будет выведена строка: число i = 150*/

fclose (lst);

/*функция fclose закрывает файл с указателем lst теперь ссылку lst можно использовать для другого файла */

Функция fprintf подобна функции printf и отличается от неё тем, что в качестве первого параметра использует указатель на соответствующий файл.

Следующая программа показывает организацию вывода информации на дискету:

/* Работа с файлами (запись информации в файл на дискету)*/

#include < stdio.h >

main ()

{ int i = 150

FILE *rsd;

Rsd=fopen(“B:ZNI.F”,”r ”);

/*второй параметр функции fopen-теперь “r ”,говорящий о чтении информации*/

fscanf(rsd,”%d”,&i);

/*из файла ZNI.F(дискета В:) будет прочитано значение i*/

printf(“число i=%d(начальное значение i)\n”,i);

while (fscanf(rsg,”%d”,&i)!=EOF)

printf(“число i = %d\n,i”);

/*последовательный вывод целых чисел из файла; вывод прекращается, когда будет достигнут конец файла(ЕОF)*/

fclose(rsd);

}

Первая функция fscanf обеспечивает чтение из файла B:ZNI.F значение целого числа i. Затем полученное значение выводится функцией printf на экран дисплея. Последующий фрагмент программы (начиная с оператора while) позволяет вывести другие целые числа из этого файла, если их там не более одного. После того как чисел в файле не остаётся, функция fscanf выдаёт особое значение EOF-признак конца файла. Его можно использовать для прекращения чтения информации.

Добавим в файл ZNI.F новые данные:

/*Работа с файлами (дополнение файла на дискете)*/

#include < stdio.h >

main ()

{ int c;

FILE * lds;

lds = fopen(“B:ZNI.F”,”a”);

/*Второй параметр функции fopen – теперь “а”, говорящий о возможности дополнения файла*/

puts (“введите целое число”);

scanf (“%d”,&c);

fprintf (lds,”%d\n”,c);

/*файл ZNI.F будет дополнен первым числом*/

fclose (lds);

}

В ответ на сообщение “введите целое число” необходимо ввести его, и файл добавится одним числом. Если необходимо добавить в файл несколько данных, можно организовать цикл.

С началом работы любой программы автоматически открываются три файла, и для них определяются соответствующие указатели. Первый из них-это файл для стандартного ввода информации с клавиатуры с указателем stdin, второй – для стандартного вывода информации на экран дисплея с указателем stdout, третий – для стандартного вывода ошибок на экран дисплея с указателем stderr. Объекты stdin, stdout, stderr – константы, а не переменные, и им нельзя что-либо присваивать. Файл с указателем stderr обычно используется для хранения различных диагностических сообщений.

Рассмотрим ввод и запись строк в файл. Продемонстрируем вывод информации в стандартный файл для ошибок:

/*Работа с файлами (ввод и запись строк). Вывод информации в стандартный файл для ошибок*/.

#include <stdio.h>

main ()

{ char str[50];

FILE *FL

FL=fopen (“FAL.F”, “w”);

puts (“Введите строку (до 49 символов)”);

scanf (“%s”, str);

fputs (str, FL);

/* Функция fputs записывает в файл строку str*/

fprintf (stderr, “Демонстрация вывода в стандартный файл для ошибок ”);

/* текст в функции fprintf будет выведен на экран*/

fclose (FL);

FL=fopen (“FAL.F”, “r”);

/* Файл открывается для чтения */

fgets (str, 20, FL);

/* функция fgets считывает из файла FAL.F строку str, максимальная длина которой 20-1=19 (20- второй параметр fgets); получившаяся строка оканчивается символом ‘\0’*/

printf (“str = %s”, str);

fclose (FL);

}

После запуска программы на выполнение необходимо ввести строку до 49 символов. На экране появится:


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)