Определение
Любой файл имеет три характерные особенности:
Объявление типа файла
Файловые переменные нельзя
Файловые переменные используют в
Режимы открытия файлов
Файловые переменные содержат следующую информацию
1.Объявить файловую переменную
2.Открыть файл
Пример
Режимы открытия файла
Пример
3.Осуществить операции обмена с файлом
Чтение/запись одного символа
Пример
Форматированный ввод/вывод
Пример
Ввод/вывод блоков данных из потока данных
Пример
4.Разорвать связь с физическим файлом
Основные процедуры для работы со всеми файлами
Пример
686.00K
Категория: ПрограммированиеПрограммирование

Тип - файл

1.

Тип - файл

2. Определение

Тип-файл представляет набор данных (чаще всего
одного типа), расположенных на внешнем устройстве и
имеющий имя.

3. Любой файл имеет три характерные особенности:


У файла есть имя
Длина вновь создаваемого файла никак не
оговаривается при его объявлении и ограничивается
только ёмкостью внешней памяти

4. Объявление типа файла

FILE *<имя переменной>;
(Пример:
FILE *f;)

5. Файловые переменные нельзя


Использовать в арифметических
операциях (складывать, вычитать и т.д.)
Присваивать

6. Файловые переменные используют в


Операциях над файлами (открытие,
закрытие, переименование)
Операциях обмена (чтение, запись)

7. Режимы открытия файлов


"w" – режим записи. Если файл с таким именем
существовал, он открывается и все содержимое
стирается. Иначе файл создается автоматически.
"a" – режим добавления. Если файл с таким именем
существовал, он открывается и старое содержимое не
стирается.
"r" – режим только для чтения.
Режим запись и чтение – "w+t",
режим добавление и чтение – "a+t".
Для текстовых файлов (*.txt) пишут: "wt", "at", "rt".

8. Файловые переменные содержат следующую информацию


Тип компонентов файла;
Имя файла;
Месторасположение файла на ВУ;
Размер файла;
Значение указателя файла;
Атрибут файла.

9.

Алгоритм работы с файлом

10. 1.Объявить файловую переменную

FILE *<имя переменной>;

11. 2.Открыть файл

<переменная файла>=fopen("имя файла","режим
открытия");
"имя файла" – если не в той же папке, что и проект,
прописывается полностью путь
"режим открытия“ :
”w” – для записи данных
“r” – для чтения данных
“a” – для добавленияданных

12. Пример

FILE *fin,*fout;
fin=fopen(“My_file1”,”r”);
fout=fopen(“My_file2”,”w”);

13. Режимы открытия файла

“b”- двоичный поток
“t”- текстовый поток
“+”- обновление файла

14. Пример

“r+” – чтение файла с обновлением, т.е. возможна
перезапись данных с усечением;
“w+” – запись в файл и одновременно чтение;
“a+” – добавление данных и чтение

15. 3.Осуществить операции обмена с файлом


Чтение
Запись
fgetc()
fputc()
fscanf()
fprintf()
fgets()
fputs()
fread()
fwrite()

16. Чтение/запись одного символа

char fgetc( FILE *f)
void fputc(char c, FILE *f)

17. Пример

char Symb=fgetc(fin);
fputc(Symb,fout)

18. Форматированный ввод/вывод


Чтение
fscanf(<переменная файла>, "<спецификация
преобразования данных>",&<имя переменной>);
Запись
fprintf(<переменная файла>, "<форматная
строка>",<имя переменной>);

19. Пример

fscanf(f,"%d",&x);
fprintf(f,"%d\n",x);

20. Ввод/вывод блоков данных из потока данных

unsigned fread(void *ptr, unsigned size, unsigned n,FILE *f) –
прочитать n элементов, длиной size байт каждый, из
заданного входного потока f в блок, на который указывает ptr.
При успешном завершении операции функция fread
возвращает число прочитанных элементов данных, при
ошибке – 0
unsigned fwrite(void *ptr, unsigned size, unsigned n,FILE *f) –
добавить n элементов, длиной size байт каждый, в заданный
выходной файл f. Данные записываются с позиции, на которую
указывает указывает ptr. При успешном завершении операции
функция fwrite возвращает число записанных элементов
данных, при ошибке – неверное число элементов данных

21. Пример

fread(&x,sizeof(x),1,f);
fwrite(&x,sizeof(x),1,f);

22. 4.Разорвать связь с физическим файлом

fclose (*<переменная файла>);

23. Основные процедуры для работы со всеми файлами


rename("<старое имя>", "<новое имя>"); //переименовать
int remove("<имя файла>"); //удалить
feof(<переменная файла>) //конец файла
fseek(<переменная файла>, <на сколько байт смещение>, <точка
отсчета>) // перемещение курсора (точка отсчета: 0 – начало файла,
1 – от текущего положения, 2 - от конца).
void rewind(<переменная файла>)-//установить указатель текущей
позиции в начало файла

24. Пример

Проверить, существует ли файл целых чисел. Если нет, то создать.
Найти сумму компонентов файла.

25.

#include "stdio.h "
#include <iostream>
using namespace std;
int main()
{
setlocale(0,"rus");
FILE *f;
int sum,i, x;
f=fopen("c.dat","wb");
printf("Создается новый файл. Вводите 5 чисел:");
for(i=0; i<5; i++)
{
scanf("%d",&x);
fwrite(&x,sizeof(x),1,f);
//fprintf(f,"%d\n",x);
}
fclose(f);

26.

f=fopen("c.dat","rb");
sum=0;
fread(&x,sizeof(x),1,f);
//fscanf(f,"%d",&x);
while(!feof(f))
{
cout<<"x="<<x<<endl;
sum+=x;
fread(&x,sizeof(x),1,f);
// fscanf(f,"%d",&x);
}
remove("b.dat");
printf("сумма=%d\n",sum);
system("pause");
return 0;
}
English     Русский Правила