Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемlegach.ntl.nnov.ru
1 Работа с файлами FILE НГТУ ИРИТ кафедра ИСУ Ольга Пронина
2 Ввод/вывод в С++ функций библиотеки языка С : printf(), scanf(), gets(), puts(), getchar(), getche(), getc(), putchar(); функций библиотеки языка С++ : стандартный входной поток (объект cin типа istream), стандартный выходной поток (объект cout типа ostream) и операции для потока ввода >> и для потока вывода
3 Буфер ввода/вывода void setbuf(FILE *f, char *p); void setbuf(FILE *f, char *p, int mode, size_t size); буферизация ввода/вывода осуществляется автоматически и позволяет ускорить выполнение программы за счёт уменьшения количества обращений к медленно работающим внешним устройствам буфер файл УВВ
4 Файловый ввод/вывод Включение файла заголовков и объявления указателей файлов. Открытие файла вызовом функции fopen, присвоение возвращаемого ею значения указателю файла. Проверка правильности открытия файла (указатель файла после шага 2 не должен равняться NULL). Чтение и запись в файл с помощью функций fprintf, fscanf, fputs, fgets, fgetc, fputc, getc, putc, freed, fwrite и других, объявленных в библиотеке. Закрытие файла вызовом функции fclose.
5 Функции для работы с файлами Открытие потока FILE *fopen (const char *name, const char *mode); Закрытие потока int fclose (FILE *f); Посимвольный ввод/вывод int fgetc (FILE *f); int fputc (int ch, FILE *f); Ввод/вывод символьных строк char* fgets (char *str, int n, FILE *f); int fputs (char *str, FILE *f); Форматированный ввод/вывод int fprintf (FILE *f, const char *format, …); int fscanf (FILE *f, const char *format [, par1, par2, …]);
6 Пример #include main() { FILE *myfile; char file_name[40]; gets(file_name); if ((myfile = fopen(file_name, r)) == NULL) { printf(ошибка при открытии файла %s \n, file_name); exit(1);//exit(0) -нормальное завершение процесса }//exit(1) - сигнал об ошибке //работа с файлом с использованием myfile ………… fclose(myfile); }
7 Пример #include void main() { FILE *fi; char str[80]; clrscr(); if ((fi = fopen("file.dat", "w")) == NULL) exit(1); else while (strcmp(gets(str)," ")!=0) fputs(str, fi); fclose(fi); if ((fi = fopen("file.dat", "r")) != NULL) while (fgets(str, 80, fi) != NULL) puts(str); fclose(fi); getch(); }
8 Функции для работы с файлами Ввод/вывод записей size_t fread (void *buf, size_t size, size_t count, FILE *f); size_t fwrite(const void *buf, size_t size, size_t n, FILE *f); Пример struct book { char title[81]; char author[21]; int page; float price; }; struct book library; FILE *fi = fopen(library.dat, r); n = fread (&library, sizeof(library), 1, fi); //n=1, чтение 1 записи //в структуру library
9 Функции для работы с файлами Очистка буфера int fflush (FILE *f); Работа с позицией в файле int feof (FILE *f); int fgetpos (FILE *f, fops_t *pos); int fseek (FILE *f, long k, int org); int fsetpos (FILE *f, const fops_t *pos); long int ftell (FILE *f); Работа с ошибками int ferror (FILE *f); int clearerr (FILE *f); void rewind (FILE *f); Переименование файла int rename (const char *old_name, const char *new_name);
10 Пример #include #define BYTES 7 FILE *fb; int main() { char file_name[30],buf[BYTES],str[40]; int i,n,x; puts("Введите имя файла: ") while (fb=fopen(gets(file_name),"rb")==0) { printf("Ошибка открытия файла %s\n",file_name); putchar('\n'); }
11 Вывод текстового файла puts("ТЕКСТ: "); while (fgets(str,80,fb)) puts(str); puts(""); Вывод текста и чисел файла puts("ТЕКСТ И ЧИСЛА: "); fseek(fb,0,0); fgets(str,80,fb); puts(str); for(i=0;i
12 Вывод бинарного файла puts("БИНАРНЫЙ ФАЙЛ: "); fseek(fb,0,0); do { n=fread(buf,1,BYTES,fb); puts(""); for(i=0;i
13 Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.