русс | укр

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

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

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

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


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

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


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


 

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

fclose (имя файла), например: fclose (fp);

Так как операции с файлами осуществляются посредством промежуточной буферизации, то операция закрытия осуществляет выталкивание содержимого буфера.

Если операции закрытия файла в программе нет, то по окончанию программы все открытые файлы будут закрыты автоматически. Следует, однако, помнить, что настройка среды ограничивает число одновременно открытых файлов, поэтому следует явно определять операцию их закрытия.

 

8.4. Операции ввода/вывода в файл (из файла)

 

Различают следующие операции ввода/вывода:

- ввод-вывод отдельных символов;

- построчный ввод-вывод;

- форматированный ввод-вывод;

- ввод/вывод объектов (данных простых и сложных типов).

Ввод-вывод отдельных символов. Эти операции осуществляются с помощью следующих функций:

1) getc() и fgetc() – ввод символа из файла;

2) puts() и fputc () – вывод символа в файл.

Разница между этими функциями заключается в том, что fgetc() и fputc() – это собственно функции, а getc() и putc() – это макросы.

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

ch= fgetc (fp);

ch принимает значение символа из файла, на который указывает fp.

fputc (ch, fp); – значение символа ch выводится в файл, на который указывает fp.

Пример 8.1. Посимвольного копирования:

# include <stdio.h>

void main (void)

{

char ch;

FILE *ist, *pri;

if((ist = fopen(“text_1.txt”, “г”)) = =NULL)

{

printf (“Не могу открыть файл источник \ n”);

return;

}

if ((pri = fopen(“text_2.txt”,”w”)) = = NULL)

{

printf (“ Не могу открыть файл приемник \n”);

return;

}

while ((ch = fgetc(ist)) != EOF)

fputc(ch, pri);

fclose (ist);



fclose(pri);

}

Ввод/вывод строк. Операции ввода/вывода строк осуществляется с помощью функций fgets() и fputs () соответственно.

Функция fgets() имеет три аргумента:

char *fgets(s, n, stream),

где s- указатель на местоположение строки;

n- предельная длина считываемой строки;

stream- указатель на файл, который будет читаться.

Функция fputs() имеет два аргумента

int fputs(s, stream),

где s- указатель на местоположение строки символов, которая будет записываться в файл;

stream- указатель файла.

Пример 8.2: Считывание файла строка за строкой и копирование.

# include<stdio.h>

void main (void)

{

int n = 80;

char string[80];

FILE *fpr, *fis;

fis = fopen (“text_1”, “r”);

fpr = fopen (“text_ 2”, “w”);

while ((fgets(string, n, fis)) != NULL)

fputs(string, fpr);

fclose (fis);

fclose (fpr);

}

При достижении конца файла функция fgets возвращает NULL.

Форматированный ввод/вывод. Форматированный ввод/вывод осуществляется функциями fprintf() и fscanf(). Эти функции работают аналогично функциям printf() и scanf(). Разница заключается в дополнительном аргументе- ссылке на файл, с которым они работают. Этот аргумент указывается первым в списке.

Например:

# include <stdio.h>

void main (void)

{

FILE *fp;

int d;

fp = fopen (“file_1.dat”, “a+b”);

fscanf (fp, “%d”, &d);

fclose (fp);

fp = fopen (“file_2. dat”, “r+b”);

fprintf (fp,”%d”, d);

fclose (fp);

}

Здесь продемонстрировано повторное использование указателя на файл после закрытия файла.

Блочный ввод-вывод осуществляется функциями fread() и fwrite().

Определение:

fread (ptr, size, n_ obg, stream);

Читать из файла stream в массив ptr (указатель) не более n_obg объектов размером size.

fwrite (ptr, size, n_obg, stream);

Пишет из массива с указателем ptr n_obg объектов размера size в поток stream (файл).

 

 



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


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


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

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

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


 


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

 
 

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

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