Презентация на тему Файлы. Функции для работы с файлами

Презентация на тему Презентация на тему Файлы. Функции для работы с файлами, предмет презентации: Информатика. Этот материал содержит 44 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Лекция 10Файлы. Функции для работы с файлами.
Текст слайда:

Лекция 10

Файлы. Функции для работы с файлами.


Слайд 2
Понятие файлаФайл – это именованная область данных на каком-либо носителе информации.Типы файлов (относительно языка «C»):текстовые;бинарные.
Текст слайда:

Понятие файла

Файл – это именованная область данных на каком-либо носителе информации.


Типы файлов (относительно языка «C»):
текстовые;
бинарные.


Слайд 3
Действия над файламиОсновные операции:Открытие файлов.Чтение и запись данных.Закрытие файлов.Дополнительные операции:Навигация по файлу.Обработка ошибок.Удаление и переименование файлов.
Текст слайда:

Действия над файлами

Основные операции:
Открытие файлов.
Чтение и запись данных.
Закрытие файлов.

Дополнительные операции:
Навигация по файлу.
Обработка ошибок.
Удаление и переименование файлов.


Слайд 4
Описание переменнойБиблиотека stdio.hFILE *имя = NULL;
Текст слайда:

Описание переменной

Библиотека stdio.h

FILE *имя = NULL;


Слайд 5
Открытие файлаFILE *fopen(const char *filename, const char *mode);filename – название файла.mode
Текст слайда:

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

FILE *fopen(const char *filename, const char *mode);

filename – название файла.
mode – режим открытия.

Функция возвращает указатель на файл, если тот был успешно открыт. В противном случае – NULL.


Слайд 6
Правила указания имени файла	Только имя, если  файл  находится в
Текст слайда:

Правила указания имени файла

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

Примеры:
“data.txt”
“..\\files\\data.txt”
“d:\\temp\\data.txt”


Слайд 7
Режимы открытия
Текст слайда:

Режимы открытия


Слайд 8
Перенаправление потоковFILE * freopen(const char *filename, const char *mode, FILE *stream);Функция
Текст слайда:

Перенаправление потоков

FILE * freopen(const char *filename, const char *mode, FILE *stream);

Функция возвращает:
Указатель на файл – все нормально,
NULL – ошибка переопределения.


Слайд 9
Закрытие файлаint fclose(FILE *stream); stream - указатель на открытый файл.Функция возвращает:0
Текст слайда:

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

int fclose(FILE *stream);

stream - указатель на открытый файл.

Функция возвращает:
0 – файл успешно закрыт.
1 – произошла ошибка закрытия файла.


Слайд 10
Проверка на достижение конца файлаint feof(FILE *stream);stream - указатель на открытый
Текст слайда:

Проверка на достижение конца файла

int feof(FILE *stream);

stream - указатель на открытый файл.

Функция возвращает:
0 – если конец файла еще не достигнут.
!0 – достигнут конец файла.


Слайд 11
Открытие текстовых файлов	Во втором  параметре дополнительно указывается символ t (необязательно):	rt, wt, at, rt+, wt+, at+
Текст слайда:

Открытие текстовых файлов

Во втором параметре дополнительно указывается символ t (необязательно):
rt, wt, at, rt+, wt+, at+


Слайд 12
Чтение из текстового файлаФорматированное чтениеint fscanf(FILE *stream, const char * format,
Текст слайда:

Чтение из текстового файла

Форматированное чтение

int fscanf(FILE *stream, const char * format, [arg] ...);

Функция возвращает:
>0 – число успешно прочитанных переменных,
0 – ни одна из переменных не была успешно прочитана,
EOF – ошибка или достигнут конец файла.


Слайд 13
Чтение из текстового файлаЧтение строкиchar * fgets(char * buffer, int maxlen,
Текст слайда:

Чтение из текстового файла

Чтение строки

char * fgets(char * buffer, int maxlen, FILE *stream);

Функция возвращает:
buffer – все нормально,
NULL – ошибка или достигнут конец файла.


Слайд 14
Чтение из текстового файлаЧтение символаint fgetc(FILE *stream); Функция возвращает:код символа –
Текст слайда:

Чтение из текстового файла

Чтение символа

int fgetc(FILE *stream);

Функция возвращает:
код символа – если все нормально,
EOF – если ошибка или достигнут конец файла.


Слайд 15
Чтение из текстового файлаПомещение символа обратно в потокint ungetc(int c, FILE
Текст слайда:

Чтение из текстового файла

Помещение символа обратно в поток

int ungetc(int c, FILE *stream);

Функция возвращает:
код символа – если все успешно,
EOF – произошла ошибка.


Слайд 16
FILE *f=NULL;f = fopen (“f.txt”,”r”);char c = fgetc(f);ungetc(‘z’,f);char s[20];fgets(s,19,f);printf(“%s”,s);
Текст слайда:


FILE *f=NULL;
f = fopen (“f.txt”,”r”);
char c = fgetc(f);
ungetc(‘z’,f);
char s[20];
fgets(s,19,f);
printf(“%s”,s);


Слайд 17
Запись в текстовый файлФорматированный выводint fprintf(FILE *stream, const char *format, [arg]
Текст слайда:

Запись в текстовый файл

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

int fprintf(FILE *stream, const char *format, [arg] ...);

Функция возвращает:
число записанных символов – если все нормально,
отрицательное значение – если ошибка.


Слайд 18
Запись в текстовый файлЗапись строкиint fputs(const char *string, FILE *stream);Функция возвращает:число
Текст слайда:

Запись в текстовый файл

Запись строки

int fputs(const char *string, FILE *stream);

Функция возвращает:
число записанных символов – все нормально,
EOF – произошла ошибка.


Слайд 19
Запись в текстовый файлЗапись символаint fputc(int c, FILE *stream);Функция возвращает:код записанного
Текст слайда:

Запись в текстовый файл

Запись символа

int fputc(int c, FILE *stream);

Функция возвращает:
код записанного символа – все нормально,
EOF – произошла ошибка.


Слайд 20
Открытие бинарных файлов	Во втором  параметре дополнительно указывается символ b (обязательно):	rb, wb, ab, rb+, wb+, ab+
Текст слайда:

Открытие бинарных файлов

Во втором параметре дополнительно указывается символ b (обязательно):
rb, wb, ab, rb+, wb+, ab+


Слайд 21
Чтение из бинарных файловsize_t fread(void *buffer, size_t size, size_t num,	FILE *stream);	Функция
Текст слайда:

Чтение из бинарных файлов

size_t fread(void *buffer, size_t size, size_t num,
FILE *stream);

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


Слайд 22
Запись в бинарный файлsize_t fwrite(const void *buffer, size_t size, size_t num,
Текст слайда:

Запись в бинарный файл

size_t fwrite(const void *buffer, size_t size, size_t num, FILE *stream);

Функция возвращает количество записанных блоков. Если оно меньше num, то произошла ошибка.


Слайд 23
Навигация по файлуЧтение текущего смещения в файле:long int ftell(FILE *stream);Изменение текущего
Текст слайда:

Навигация по файлу

Чтение текущего смещения в файле:
long int ftell(FILE *stream);

Изменение текущего смещения в файле:
int fseek(FILE *stream, long int offset, int origin);

Возможные значения origin:
SEEK_SET (или 0) – от начала файла.
SEEK_CUR (или 1) – от текущей позиции.
SEEK_END (или 2) – от конца файла.

Функция возвращает:
0 – все нормально,
!0 – произошла ошибка.


Слайд 24
Навигация по файлуПеремещение к началу файла:void rewind(FILE *stream);
Текст слайда:

Навигация по файлу

Перемещение к началу файла:
void rewind(FILE *stream);


Слайд 25
Навигация по файлуЧтение текущей позиции в файле:int fgetpos(FILE *stream, fpos_t *pos);Установка
Текст слайда:

Навигация по файлу

Чтение текущей позиции в файле:
int fgetpos(FILE *stream, fpos_t *pos);

Установка текущей позиции в файле:
int fsetpos(FILE *stream, const fpos_t *pos);

Функции возвращают:
0 – все успешно,
!0 – произошла ошибка.


Слайд 26
Навигация по файлуСтруктура fpos_t:typedef struct fpos_t {	long off;	mbstate_t wstate;} fpos_t;
Текст слайда:

Навигация по файлу

Структура fpos_t:

typedef struct fpos_t {
long off;
mbstate_t wstate;
} fpos_t;


Слайд 27
Обработка ошибокПолучение признака ошибки:int ferror(FILE *stream); Функция возвращает ненулевое значение, если
Текст слайда:

Обработка ошибок

Получение признака ошибки:
int ferror(FILE *stream);
Функция возвращает ненулевое значение, если возникла ошибка.

Функция сброса ошибки:
void clearerr(FILE *stream);

Функция вывода сообщения об ошибке:
void perror(const char *string);


Слайд 28
БуферизацияФункция очистки буфера:int fflush(FILE *stream);Функция возвращает:0 – все нормально.EOF – произошла
Текст слайда:

Буферизация

Функция очистки буфера:
int fflush(FILE *stream);

Функция возвращает:
0 – все нормально.
EOF – произошла ошибка.

Функция управления буфером:
void setbuf(FILE *stream, char * buffer);

Создает буфер размером BUFSIZ. Используется до ввода или вывода в поток.


Слайд 29
Временные файлыФункция создания временного файла:FILE * tmpfile(void);Создает временный файл в режиме
Текст слайда:

Временные файлы

Функция создания временного файла:
FILE * tmpfile(void);
Создает временный файл в режиме wb+. После закрытия файла, последний автоматически удаляется.

Функция генерации имени временного файла:
char * tmpnam(char *buffer);


Слайд 30
Удаление и переименованиеФункция удаления файла:int remove(const char *filename);Функция переименования файла:int rename(const
Текст слайда:

Удаление и переименование

Функция удаления файла:
int remove(const char *filename);

Функция переименования файла:
int rename(const char *fname, const char *nname);

Функции возвращают:
0 – в случае успеха,
!0 – в противном случае.


Слайд 31
Пример	Дан текстовый файл, содержащий целые числа (
Текст слайда:

Пример

Дан текстовый файл, содержащий целые числа (<= 10000 элементов). Переписать файл, упорядочив целые числа по возрастанию или убыванию (выбирает пользователь). Имя файла передается в параметрах командной строки.


Слайд 32
Программаint main(int argc, char *argv[]){ int ARR[10000], n=0, v; FILE *f = NULL; if(argc
Текст слайда:

Программа

int main(int argc, char *argv[])
{
int ARR[10000], n=0, v;
FILE *f = NULL;
if(argc<2) {printf("Не указано имя файла!\n"); return 1;}
f = fopen(argv[1],"r");
if(!f) {printf("Файл не найден!\n"); return 1;}
while(fscanf(f,"%d",&v) == 1) ARR[n++] = v;
fclose(f);


Слайд 33
Текст слайда:

Программа

printf("Sort (INC-0, DEC-!0):"); scanf("%d",&v);
if(v) qsort(ARR,n,sizeof(int),Cmp1);
else qsort(ARR,n,sizeof(int),Cmp2);
f = fopen(argv[1],"w");
if(!f) {printf("Невозможно создать файл!\n"); return 1;}
for(int i=0;i fclose(f);
return 0;
}


Слайд 34
Программаint Cmp1(const void *p1,const void *p2){ return *((int *)p2) - *((int
Текст слайда:

Программа

int Cmp1(const void *p1,const void *p2)
{
return *((int *)p2) - *((int *)p1);
}

int Cmp2(const void *p1,const void *p2)
{
return *((int *)p1) - *((int *)p2);
}


Слайд 35
ПримерДан текстовый файл, содержащий в строках целые числа (максимальная длина строки
Текст слайда:

Пример

Дан текстовый файл, содержащий в строках целые числа (максимальная длина строки – 100 символов). Вычислить сумму чисел в каждой строке и записать в новый файл. Имена файлов передаются в параметрах командной строки.


Слайд 36
Программаint main(int argc, char *argv[]){ FILE *f = NULL, *r = NULL; if(argc
Текст слайда:

Программа

int main(int argc, char *argv[])
{
FILE *f = NULL, *r = NULL;
if(argc<3) {printf("Не указано имя файла!\n"); return 1;}
f = fopen(argv[1],"r");
if(!f) {printf("Файл не найден!\n"); return 1;}
r = fopen(argv[2],"w");
if(!r) {
printf("Невозможно создать файл!\n");
fclose(f); return 1;
}


Слайд 37
Программа while(!feof(f)){  char str[100] = “”;  fgets(str,100,f);  if(str[0]==0)
Текст слайда:

Программа

while(!feof(f)){
char str[100] = “”;
fgets(str,100,f);
if(str[0]==0) continue;
char *ptr = strtok(str," \t");
if(!ptr) continue;
int sum = atoi(ptr);
while((ptr = strtok(NULL," \t")) != NULL)
sum += atoi(ptr);
fprintf(r,"%d\n",sum);
}
fclose(f); fclose(r);
return 0;
}


Слайд 38
Пример	Дан  бинарный  файл,  содержащий вещественные числа. Найти максимум
Текст слайда:

Пример

Дан бинарный файл, содержащий вещественные числа. Найти максимум и минимум, поменять их в файле местами. Имя файла указывается в параметрах командной строки.


Слайд 39
Программаint main(int argc, char *argv[]){ FILE *f = NULL; if(argc <
Текст слайда:

Программа

int main(int argc, char *argv[])
{
FILE *f = NULL;
if(argc < 2) {printf("Не указано имя файла!\n"); return 1;}
f = fopen(argv[1],"rb+");
if(!f) {printf("Файл не найден!\n"); return 1;}
double max, min, val;
int imax = 0, imin = 0, i = 1;
fread(&val,sizeof(double),1,f);
max = min = val;


Слайд 40
Программа while(!feof(f)){  fread(&val,sizeof(double),1,f);  if(val > max) {max = val;
Текст слайда:

Программа

while(!feof(f)){
fread(&val,sizeof(double),1,f);
if(val > max) {max = val; imax = i;}
if(val < min) {min = val; imin = i;}
i++;
}
fseek(f,imax*sizeof(double),0);
fwrite(&min,sizeof(double),1,f);
fseek(f,imin*sizeof(double),0);
fwrite(&max,sizeof(double),1,f);
fclose(f); return 0;
}


Слайд 41
ПримерДан бинарный файл, содержащий записи со следующими полями:ФИО студента (строка 30
Текст слайда:

Пример

Дан бинарный файл, содержащий записи со следующими полями:
ФИО студента (строка 30 символов),
Курс (целое число)
Средний балл (вещественное число).

Переписать файл, упорядочив записи по курсу, а внутри курса – по фамилии. Имя файла передается в параметрах командной строки.


Слайд 42
Программаtypedef struct { char fio[30]; int kurs; double ball;} STUDENT;int Cmp(const
Текст слайда:

Программа

typedef struct {
char fio[30]; int kurs; double ball;
} STUDENT;

int Cmp(const void *p1, const void *p2)
{
STUDENT *s1 = (STUDENT *)p1, *s2 = (STUDENT *)p2;
if(s1->kurs != s2->kurs) return s1->kurs - s2->kurs;
return strcmp(s1->fio,s2->fio);
}


Слайд 43
Программаint main(int argc, char *argv[]){ if(argc < 2) {printf(
Текст слайда:

Программа

int main(int argc, char *argv[])
{
if(argc < 2) {printf("Не указано имя файла!\n"); return 1;}
FILE *f = fopen(argv[1],"rb+");
if(!f) {printf("Файл не найден!\n"); return 1;}
long int num = 0;
fseek(f,0,2); num = ftell(f); rewind(f);
if(num%sizeof(STUDENT)) {
printf("Invalid file!\n"); fclose(f); return 1;
}
num/=sizeof(STUDENT);
STUDENT Arr[num];


Слайд 44
Программа fread(Arr,sizeof(STUDENT),num,f); rewind(f); qsort(Arr,num,sizeof(STUDENT),Cmp); fwrite(Arr,num,sizeof(STUDENT),f); fclose(f); return 0;}
Текст слайда:

Программа

fread(Arr,sizeof(STUDENT),num,f);
rewind(f);
qsort(Arr,num,sizeof(STUDENT),Cmp);
fwrite(Arr,num,sizeof(STUDENT),f);
fclose(f);
return 0;
}


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика