Студопедия

КАТЕГОРИИ:

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

Файлы; их описание, открытие текстового файла, закрытие файла.




Открытие файла: fopen( )

Функцией fopen( ) управляют три основных параметра. Первый - имя файла, который следует открыть. Он является и первым аргументом fopen( ). В нашем примере это "File". Второй параметр описывает, как должен использоваться файл:

"r" - файл нужно считать,

"w" - файл нужно записать,

"a" - файл нужно дополнить.

"w+" - новый текстовый файл открывается для записи и последующих многократных исправлений. Если файл уже существует, то предыдущее содержимое стирается. Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конце файла, т. е. файл может увеличиваться.

"r+" - существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла; однако в этом режиме невозможна запись в конец файла, то есть недопустимо увеличение размеров файла.

"a+" - текстовый файл открывается или создается, если файла нет, и становится доступным для изменений, т. е. для записи и для чтения в любом месте; при этом, в отличие от режима "w+", можно открыть существующий файл и не уничтожать его содержимое; а в отличие от режима "r+" в режиме "a+" можно вести запись в конец файла, то есть увеличивать его размеры.

Используемые коды являются строками, а не символьными константами.

При применении "r" открывается существующий файл. При двух других применениях тоже будет открываться существующий файл, но если такого файла нет, он будет создан. Если вы используете "w" для существующего файла, то старая версия его стирается, и ваша программа начинает записывать на чистое место. Третий параметр является указателем на файл. Это значение возвращается самой функцией.

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

FILE *in;

in=fopen("File","r");

Теперь in является указателем на файл "File". С этого момента программа ссылается на файл при помощи указателя in, а не по имени File

FILE *fopen( )

Если fopen( ) не способна открыть требуемый файл, она возвращает значение NULL, определенное в stdio.h как 0.

Закрытие файла:

fclose(in)

Аргумент функции является указателем на файл. Для более серьезной программы нужно смотреть, успешно ли закрыт файл. Функция fclose( ) возвращает значение 0, если файл закрыт успешно, и -1 в противном случае

Файлы; их описание, открытие двоичного файла, закрытие файла.

FILE*in – объявление файла (in – индентификатор)

fclose(in) – закрытие файла

«rb» — открываем двоичный файл в режиме чтения;

«wb» — создаем двоичный файл для записи; если он существует, то его содержимое очищается;

«ab» — создаем или открываем двоичный файл для дозаписи в конец файла;

«rb+» — открываем существующий двоичный файл в режиме чтения и записи;

«wb+» — открываем двоичный файл в режиме чтения и записи, существующий файл очищается;

«ab+» — двоичный файл открывается или создается для исправления существующий информации и добавления новой в конец файла.

Чтение из файла, запись в файл (с использованием форматов).

Объявление файла производится следующим образом:

FILE указатель файла1[,..,указатель файлаN];

Например

                                                                  FILE *in, *out, *f1;

                   Открытие файла:

указатель_файла=fopen(имя_файла, режим_работы);

                   Возможны следующие режимы работы:

r – открытие файла на чтение (при этом открываемый файл должен существовать);

w – открытие файла на запись (если открываемого файла нет, то он будет создан; если этот файл уже есть, то его содержимое стирается);

a – открытие файла надозапись (при этом, если файла нет, то он создается);

r+ – открытие файла на чтение и запись (при этом открываемый файл должен существовать);

w+ – открытие файла на чтение и запись (при этом содержимое открываемого файла стирается);

a+ – открытие файла на чтение и дозапись (при этом, если файла нет, то он создается).

Работа со стандартным файлом:

scanf( управляющая строка, данные );

printf (управляющая строка,данные);

gets( имя_строки );                                                        

puts( строка или имя строки );

getchar();

getch();

getche();

putchar( символ или имя_символа )

Чтение из файла, запись в файл (без формата).

Работа с произвольным файлом:

fscanf(указатель_файла,управляющая_строка, данные);

fprintf(указатель файла,управляющая строка, данные);

fgets( имя_строки,колич.симв.,указ._файла );

fputs( строка или имя_строки,указ._файла );

getc( указатель_файла) ;                                                                     

putc( символ или имя_символа,указ._файла);

Двоичные файлы. Бесформатный ввод-вывод:

fread(куда, размер, сколько, указатель_файла); – для чтения из файла,

fwrite (откуда, размер, сколько,указатель_файла); – для записи в файл.

При этом, в fopen режим дополняется опцией ”b”(двоичный файл), например,

"wb+" (по умолчанию действует ”t” — текстовый файл).

Указание позиции при работе с файлом:

ftell (указатель файла);

fseek( указатель_файла, величина_сдвига, точка_отсчета);

SEEK_SET – начало файла,

SEEK_CUR – текущая позиция,

SEEK_END – конец файла.

Определение текущей позиции в файле; ее установка.

Указание позиции при работе с файлом:

ftell (указатель файла);

fseek( указатель_файла, величина_сдвига, точка_отсчета);

SEEK_SET – начало файла,

SEEK_CUR – текущая позиция,

SEEK_END – конец файла.


 










Последнее изменение этой страницы: 2018-04-12; просмотров: 237.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...