русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дополнительные возможности работы с файлами


Дата добавления: 2013-12-23; просмотров: 715; Нарушение авторских прав


Анализ и упровление положением уазатля файл производится с помощью фунций feof, fseek, rewind. Положение курсора в файле можно определить с помощью функции feof .

Прототип фукции feof:

Int feof (FILE * stream);

Возвращаемое значение фунции feof:

- нуль, если коец файла не достигнут;

- не нуль, если конец файла достигнут.

При чтении из файла с помощью функций fgets или fscanf признк конца файла формируется сразу после считывания последних данных файла. Поэтому конец файла в этих случаях можно обнаружить из анализа значения результата вызова функции feof. Пример:

while (! feof (fp)) { fgets (str,50,fp); … …}

При посимвольном чтении файла конец файла можно обнаружить с помощью анализа результата чтения:

while ((c = getc(fp)) != EOF) {… …

Если с помощью fread прочитана из файла последняя запись и достигнут конец файл, функция feof возвращает не нуль только после очередной попытки чтения из файла и сохраняет его до тех пор, пока файл не будет закрыт или не будет вызвана функция rewind. Так как значение feof(!=0) обнаруживается только после очередной неудачной попытки чтения из файла с помощью оператора fread, то для обнаружения конца файла лучше применять fread. Пример: while(fread(&zapst,sizeof(stud),1,fp))

Фунция fread возвращает результат, равный 1, только при успешном чтении и нуль – при неуспешном, при этом условие цикла станет ложным, и выполнение цикла станет ложным.

Для чтения или записи данных в заданное место файла используют функцию fseek, с помощью которой указатеь устанавливается в заданное место файла. Прототип функции:

Int fseek (FILE * stream, long offset, int nach);

- stream – указатель переменной типа FILE;

- offset – смещение указателя в байтах относиельно начала, заданного параметра nach;

- nach – начальная точка, от которой производится смещение.



Функция fseek перемещает указатель файла , связанный с потоком stream,на новое место, которое определяется значением offsetиnach.Следующая операция в/в будет выполнена, начиная с той позиции, на которую будет перемещен указатель. Параметр nachопределяет начальную точку, от которой производится смещение, и может иметь значение одной из следующих констант, определенных в stdio.h:

SEEK_SET = 0;- от начала файла;

SEEK_CUR = 1; -от текущего положения указателя файла;

SEEK_END = 2; - от конца файла.

Попытка переместитьуказатель за начало файла фызывает ошибку. Возвращаемое значение:

0 – если указатель перемещен успешно;

!0 – не нуль, если произошла ошибка.

Примеры обращения к функции fseek:

fseek(fp, -n, 1); - на n байтов назад от текущей позиции;

fseek(fp, -m, SEEK_CUR); - на m байтов назад от текущей позиции;

fseek(fp, 100L, 0); - на 100 байтов от начала файла.

С помощью функции rewind можно установить указатель, связанный с файлом, на начало файла.Прототип функции:

void rewind (FILE * stream);

Эквивалентно вызову: fseek(fp, 0L, 0); или fseek(fp, 0L, SEEK_SET);

Функция rewindочищает признак конца файла и признак ошибки.

Удалить файл можно с помощью функцией remove. Прототип функции:

Int remove ( const char * filename);



<== предыдущая лекция | следующая лекция ==>
Ввод - вывод записей | Открытие и создание файлов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.