КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции для открытия-закрытия файла
Функции для работы с файлами Функции для работы с файлами размещены в библиотеках stdio.lib (#include < stdio.h >) и io.lib (#include < io.h >). Каждый файл должен быть связан с некоторым указателем. Этот указатель имеет тип FILE и используется во всех операциях с файлами. Формат объявления указателя на файл следующий: FILE *указатель на файл; Например: FILE *fl1, *fl2; Указатель содержит адрес структуры, включающей в себя различные сведения о файле, например, его имя, статус и указатель на начало файла. Чтобы выполнять в файлах операции чтения и записи, программы должны использовать указатели соответствующих файлов. Макрос NULL определяет пустой указатель. Макрос EOF, часто определяемый как -1, является значением, возвращаемым тогда, когда функция ввода пытается выполнить чтение после конца файла. Макрос FOPEN_MAX определяет целое значение, равное максимальному числу одновременно открытых файлов.
Прототип функции: FILE * fopen (const char * имя_файла, const char * режим_открытия); Функция открывает файл и связывает его с потоком. Возвращает указатель на открытый файл. Имя_файла — это указатель на строку символов, в которой хранится имя файла и путь к нему. Например: “d:\\work\\lab2.dat”. режим_открытия это указатель на строку символов, в которой указывается режим открытия файла. Допустимы режимы указаны в таблице:
По умолчанию файл открывается в текстовом режиме. Если при открытии файла произошла ошибка, функция fopen возвращает значение NULL. Для создания файла можно записать: FILE *fl; fl = fopen("lab2.dat","w”); Более грамотно бедут: FILE *fl; if ((fl = fopen("lab2.dat","w"))==NULL) { cout << "Oshibka pri sozdanii"<<endl; return 1; } Такой алгоритм позволяет обнаружить любую ошибку, возникающею при создании файла. Для исключения ошибки, возникающей при открытии несуществующего файла, можно использовать конструкцию: FILE *fl; if ((fl = fopen("lab2.dat","r"))==NULL) { fl = fopen("lab2.dat","w"); } При попытке открыть несуществующий файл в режиме дозаписи, он будет автоматически создан. Разница между режимами r+ и w+ состоит в том, что если файл не существует, то в режиме открытия r+ он создан не будет, а в режиме w+ будет создан! Если файл уже существует, то открытие его в режиме w+ приведет к утрате его содержимого, а в режиме r+ оно останется нетронутым. При записи обмен происходит не непосредственно с файлом, а с некоторым буфером. Информация из буфера переписывается в файл только при переполнении буфера или при закрытии файла. Для закрытия файла используется функция fclose(). Прототип функции: int fclose (FILE * указатель_на _файл); Функция закрывает поток, который был открыт с помощью вызова fopen() и записывает в файл все данные, которые еще оставались в дисковом буфере. Доступ к файлу после выполнения функции будет запрещен. Возвращение нуля означает успешную операцию закрытия. В случае же ошибки возвращается EOF. Чтобы точно узнать, в чем причина этой ошибки, можно использовать стандартную функцию ferror(). Для закрытия нескольких файлов введена функция: int fcloseall (void); Функция закрывает все открытые файлы. Возвращает количество закрытых файлов или EOF, если возникает ошибка. В MVC++ 2005 функция пишется: _fcloseall.
Дата добавления: 2014-01-07; Просмотров: 461; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |