Содержание
- 2. Понятие файла Файл – это именованная область данных на каком-либо носителе информации. Типы файлов (относительно языка
- 3. Действия над файлами Основные операции: Открытие файлов. Чтение и запись данных. Закрытие файлов. Дополнительные операции: Навигация
- 4. Описание переменной Библиотека stdio.h FILE *имя = NULL;
- 5. Открытие файла FILE *fopen(const char *filename, const char *mode); filename – название файла. mode – режим
- 6. Правила указания имени файла Только имя, если файл находится в текущем каталоге. Иначе необходимо указать абсолютный
- 7. Режимы открытия
- 8. Перенаправление потоков FILE * freopen(const char *filename, const char *mode, FILE *stream); Функция возвращает: Указатель на
- 9. Закрытие файла int fclose(FILE *stream); stream - указатель на открытый файл. Функция возвращает: 0 – файл
- 10. Проверка на достижение конца файла int feof(FILE *stream); stream - указатель на открытый файл. Функция возвращает:
- 11. Открытие текстовых файлов Во втором параметре дополнительно указывается символ t (необязательно): rt, wt, at, rt+, wt+,
- 12. Чтение из текстового файла Форматированное чтение int fscanf(FILE *stream, const char * format, [arg] ...); Функция
- 13. Чтение из текстового файла Чтение строки char * fgets(char * buffer, int maxlen, FILE *stream); Функция
- 14. Чтение из текстового файла Чтение символа int fgetc(FILE *stream); Функция возвращает: код символа – если все
- 15. Чтение из текстового файла Помещение символа обратно в поток int ungetc(int c, FILE *stream); Функция возвращает:
- 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);
- 17. Запись в текстовый файл Форматированный вывод int fprintf(FILE *stream, const char *format, [arg] ...); Функция возвращает:
- 18. Запись в текстовый файл Запись строки int fputs(const char *string, FILE *stream); Функция возвращает: число записанных
- 19. Запись в текстовый файл Запись символа int fputc(int c, FILE *stream); Функция возвращает: код записанного символа
- 20. Открытие бинарных файлов Во втором параметре дополнительно указывается символ b (обязательно): rb, wb, ab, rb+, wb+,
- 21. Чтение из бинарных файлов size_t fread(void *buffer, size_t size, size_t num, FILE *stream); Функция возвращает количество
- 22. Запись в бинарный файл size_t fwrite(const void *buffer, size_t size, size_t num, FILE *stream); Функция возвращает
- 23. Навигация по файлу Чтение текущего смещения в файле: long int ftell(FILE *stream); Изменение текущего смещения в
- 24. Навигация по файлу Перемещение к началу файла: void rewind(FILE *stream);
- 25. Навигация по файлу Чтение текущей позиции в файле: int fgetpos(FILE *stream, fpos_t *pos); Установка текущей позиции
- 26. Навигация по файлу Структура fpos_t: typedef struct fpos_t { long off; mbstate_t wstate; } fpos_t;
- 27. Обработка ошибок Получение признака ошибки: int ferror(FILE *stream); Функция возвращает ненулевое значение, если возникла ошибка. Функция
- 28. Буферизация Функция очистки буфера: int fflush(FILE *stream); Функция возвращает: 0 – все нормально. EOF – произошла
- 29. Временные файлы Функция создания временного файла: FILE * tmpfile(void); Создает временный файл в режиме wb+. После
- 30. Удаление и переименование Функция удаления файла: int remove(const char *filename); Функция переименования файла: int rename(const char
- 31. Пример Дан текстовый файл, содержащий целые числа (
- 32. Программа int main(int argc, char *argv[]) { int ARR[10000], n=0, v; FILE *f = NULL; if(argc
- 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");
- 34. Программа int Cmp1(const void *p1,const void *p2) { return *((int *)p2) - *((int *)p1); } int
- 35. Пример Дан текстовый файл, содержащий в строках целые числа (максимальная длина строки – 100 символов). Вычислить
- 36. Программа int main(int argc, char *argv[]) { FILE *f = NULL, *r = NULL; if(argc f
- 37. Программа while(!feof(f)){ char str[100] = “”; fgets(str,100,f); if(str[0]==0) continue; char *ptr = strtok(str," \t"); if(!ptr) continue;
- 38. Пример Дан бинарный файл, содержащий вещественные числа. Найти максимум и минимум, поменять их в файле местами.
- 39. Программа int main(int argc, char *argv[]) { FILE *f = NULL; if(argc f = fopen(argv[1],"rb+"); if(!f)
- 40. Программа while(!feof(f)){ fread(&val,sizeof(double),1,f); if(val > max) {max = val; imax = i;} if(val i++; } fseek(f,imax*sizeof(double),0);
- 41. Пример Дан бинарный файл, содержащий записи со следующими полями: ФИО студента (строка 30 символов), Курс (целое
- 42. Программа typedef struct { char fio[30]; int kurs; double ball; } STUDENT; int Cmp(const void *p1,
- 43. Программа int main(int argc, char *argv[]) { if(argc FILE *f = fopen(argv[1],"rb+"); if(!f) {printf("Файл не найден!\n");
- 45. Скачать презентацию