Работа с файлами

Содержание

Слайд 2

Ввод/вывод в С++

функций библиотеки языка С : printf(), scanf(), gets(), puts(), getchar(),

Ввод/вывод в С++ функций библиотеки языка С : printf(), scanf(), gets(), puts(),
getche(), getc(), putchar();
функций библиотеки языка С++ : стандартный входной поток (объект cin типа istream), стандартный выходной поток (объект cout типа ostream) и операции для потока ввода >> и для потока вывода <<.
При этом данные:
читаются из файлов и с устройств и пишутся в файлы и на устройства;
передаются побайтно или группами байтов;
рассматриваются как неструктурированный набор данных – поток.

Слайд 3

Буфер ввода/вывода

void setbuf(FILE *f, char *p);
void setbuf(FILE *f, char *p, int mode,

Буфер ввода/вывода void setbuf(FILE *f, char *p); void setbuf(FILE *f, char *p,
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

Функции для работы с файлами Открытие потока FILE *fopen (const char *name,
*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
#include
main()
{
FILE *myfile;
char file_name[40];
gets(file_name);
if ((myfile = fopen(file_name, ”r”)) == NULL)
{
printf(“ошибка

Пример #include #include main() { FILE *myfile; char file_name[40]; gets(file_name); if ((myfile
при открытии файла %s \n”, file_name);
exit(1); //exit(0) -нормальное завершение процесса
} //exit(1) - сигнал об ошибке
//работа с файлом с использованием myfile
…………
fclose(myfile);
}

Слайд 7

Пример

#include
#include
#include
#include
void main()
{
FILE *fi;
char str[80];
clrscr();
if ((fi

Пример #include #include #include #include void main() { FILE *fi; char str[80];
= 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

Функции для работы с файлами Ввод/вывод записей size_t fread (void *buf, 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 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
#include
#include
#include
#define BYTES 7
FILE *fb;
int main()
{
char file_name[30],buf[BYTES],str[40];
int i,n,x;
puts("Введите

Пример #include #include #include #include #define BYTES 7 FILE *fb; int main()
имя файла: ")
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("ТЕКСТ: "); while (fgets(str,80,fb)) puts(str); puts(""); --------Вывод текста и
файла------------------------------
puts("ТЕКСТ И ЧИСЛА: ");
fseek(fb,0,0);
fgets(str,80,fb);
puts(str);
for(i=0;i<5;i++)
{
fscanf(fb,"%d",&x);
printf("%2d",x);
}
puts("");

Слайд 12

--------Вывод бинарного файла-----------------------------------
puts("БИНАРНЫЙ ФАЙЛ: ");
fseek(fb,0,0);
do
{
n=fread(buf,1,BYTES,fb);
puts("");
for(i=0;i puts("");

--------Вывод бинарного файла----------------------------------- puts("БИНАРНЫЙ ФАЙЛ: "); fseek(fb,0,0); do { n=fread(buf,1,BYTES,fb); puts(""); for(i=0;i
for(i=0;i if(iscntrl(buf[i])) printf("%5c",'.');
else printf("%5c",buf[i]);
puts("");
}
while(n==BYTES)
{
getche();
return 0;
}
getch();
}
Имя файла: Работа-с-файлами.pptx
Количество просмотров: 211
Количество скачиваний: 0