|
Программирование >> Элементы языков с и с++
Глава 9 Si il Ч Ввод и вывод в языках С и С++ Ввод и вывод в с Ввод/вывод в языке С осуществляется функциями из стандартных библиотек. Чтобы ими пользоваться, в программу надо включать соответствующие h-файлы: stdio.h. stdlib.h, conio.h и др. Главная библиотека - stdio.h. В ней содержатся основные функции ввода/вывода, в том числе и обеспечивающие стандартный ввод/вывод. Ввод/вывод файлов Чтобы работать с файлом, его сначала следует открыть: связать со специальной структурой с именем file, которая описана в библиотеке stdio.h и в которой задаются характеристики файла (размер буфера ввода/вывода, состояние файла, последняя прочитанная запись и т. п.). Связь эта выполняется с помощью функции f open (), которая тоже входит в библиотеку stdio.h и возвращает указатель на структуру file. Поэтому в программе прежде всего следует задать указатель на структуру file (например, file *fp;), а затем записать оператор собственно открытия файла: fp=fopen (имя файла, способ открытия файла); Функция открытия имеет два параметра: имя открываемого файла и способ открытия файла. Способ открытия файла определяет, как будет пользователь работать с файлом: читать его, писать в него или делать что-то еще. Рассмотрим способы открытия файла. Их коды и значения приведены ниже: D г - файл открывается только для чтения из него; □ W- файл открывается только для записи в него (если файл не существует, он создается); П а- файл открывается для дозаписи информации в конец файла. Если файл не существует, он создается для записи в него; П г+ - существующий файл открывается для обновления: чтения и записи; □ W+ - создается новый файл для работы в режиме обновления: такой файл можно будет и читать, и записывать в него; □ а+ - файл открывается для дозаписи информации в конец файла. Если, файл не существует, он создается. Если существует, то открывается для дозаписи в конец файла. Если по какой-либо причине открытия файла не произошло (например, задано имя несуществующего файла), то функция f open () возвращает значение NULL. Поэтому открытие файла следует осуществлять так: if((fp=fopen(name,mode)) = NULL) {операторы обработки ошибки открытия} остальные операторы программы После того как программа с данным файлом отработала, следует отвяз структуру FILE от отработавшего файла или, как говорят, закрыть файл.! осуществляет функция f close (fp). Она не только разрывает связь структуры 1 с файлом, но и записывает в память оставшееся содержимое буфера ввода/вывода, через который собственно и организуется ввод/вывод. Только после закрытия файла с ним можно выполнять какие-либо действия, т. к. он свободен , не привязан . Например, его можно удалить или заново открыть j в другом режиме открытия и т. д. Основные функции для работы с файлами После того как файл открыт, для чтения или записи используют специальные] функции. Приведем перечень функций для работы с файлами. П Функция fputC (). Формат: fputc(c, fp); Выводит символ в файл (с - выводимый символ, f р - указатель фай □ Функция fputs (). Формат: fputs(S,fp); Выводит строку в файл (s - выводимая строка, f р - указатель файла). 13JK.960 П Функция f getc (). Формат: c=fgetc(fp) ; Читает один символ из файла с указателем f р. Переменная с описана как char с. В случае ошибки или достижения конца файла возвращает EOF. D Функция f gets (). Формат: fgets (s,maxline, fp) ; Читает строку в s (s - массив символов или указатель типа char (предварительно должна быть выделена память для чтения с использованием указателя), maxline - максимальное число символов, которое требуется читать из файла с указателем f р). В случае ошибки или достижения конца файла возвращает null. D Функция freadO. Формат: fread(buf, m, n, fp); Читает из файла с указателем f р п элементов данных, каждый из которых имеет длину m байтов. Чтение происходит в буфер, на который указывает указатель (например, char buf[50] или char *buf (но в этом случае надо выделить память для буфера)). Общее количество байтов чтения составит nxm. Функция возвращает количество прочитанных элементов, а по достижении конца файла или возникновении ошибки чтения возвращает null. D Функция fwrite (). Формат: fwrite(const void ptr, m, n, fp); Пишет в файл с указателем fp: добавляет п элементов в выходной файл, каждый элемент длиной в m байтов. Данные записываются из буфера, на который указывает указатель ptr (этот указатель указывает на некоторый объект, например, на структуру). Общее число записанных байтов равно nxm. В случае ошибки записи функция возвращает ноль, в противном случае - количество записанных элементов. D Функция fseek (). Формат: fseelc(fp,n,m) ;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |