сhmod() #include <io.h>
Изменяет режим доступа к файлу.
int chmod(const char *path, int mode);
chsize() #include<io.h>
Изменяет размер файла.
int chsize(int handle, long size);
close() #include<io.h>
Закрывает файл.
int close(int handle);
creatnew() #include <dos.h>
Создает новый файл.
int creatnew(const char *path, int mode);
eof() #include<io.h>
Определяет, достигнут ли конец файла.
int eof(int handle);
fclose() #include <stdio.h>
Закрывает поток.
int fclose (FILE *stream);
fdopen() #include<stdio.h>
Связывает поток с логическим номером файла.
FILE *fdopen(int handle, char *type);
feof() #include<stdio.h>
ferror() #include<stdio.h>
Обнаруживает ошибки в потоке.
int ferror(FILE *stream);
fgetc() #include<stdio.h>
Получает символ из потока.
int fgetc(FILE *stream);
fgetchar() #include<stdio.h>
Получает символ из потока stdin.
int fgetchar(void);
fgetpos() #include<stdio.h>
Возвращает положение указателя текущей
позиции в файле.
int fgetpos(FILE *stream, fpos_t *pos);
fgets() #include<stdio.h>
Получает строку символов из потока.
char *fgets(char s, int n, FILE *stream);
fopen() #include <stdio.h>
Открывает поток.
FILE *fopen(char *filename, char *type);
fprintf() #include <stdio.h>
Осуществляет форматированный вывод в поток.
int fprintf(FILE *stream, const char *format [argument,...]);
fputc() #include <stdio.h>
Выводит символ в поток.
int fputc(int c, FILE *stream);
fputchar() #include <stdio.h>
Выводит символ в поток stdout.
int fputchar(int c);
fputs() #include <stdio.h>
Выводит строку символов в поток.
int fputs(char *string, FILE *stream);
fread() #include <stdio.h>
Считывает данные из потока.
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
freopen() #include <stdio.h>
Связывает с потоком новый файл.
FILE *freopen(char *filename, char *mode, FILE *stream);
fscanf() #include <stdio.h>
Выполняет форматированный ввод из потока.
int fscanf(FILE *stream, char *format [adress,...]);
fseek() #include <stdio.h>
Устанавливает указатель файла в потоке.
int fseek(FILE *stream, long offset, int fromwhere);
fsetpos() #include<stdio.h>
Позиционирует указатель текущей позиции в файле, связанном с потоком stream.
|
int fsetpos(FILE *stream, const fpos_t *pos);
ftell() #include <stdio.h>
Возвращает положение указателя текущей позиции файла.
long ftell(FILE *stream);
fwrite() <stdio.h>#include
Записывает данные в поток.
size_t fwrite(void *ptr, size_t size, size_t n, FILE *stream);
getc() #include <stdio.h>
Вводит из потока символ.
int getc(FILE *stream);
getchar() #include <stdio.h>
Вводит символ из потока stdin.
int getchar(void);
gets() #include<stdio.h>
Вводит строку символов из потока stdin.
char *gets(char *s);
getw() #include <stdio.h>
Вводит из потока целое число.
int getw(FILE *stream);
Перемещает указатель чтения/записи файла.
lseek() #include <io.h>
long lseek(int handle, long offset, int fromwhere);
_ open() #include <fcntl.h>
Открывает файл для чтения или записи.
int _open(const char *filename, int oflags);
open() #include <fcntl.h>; #include <sys\stat.h>;
Открывает файл для чтения
int open(const char *filename, int access [unsigned mode]);
или записи.
putc() #include <stdio.h>
Выводит символ в поток.
int putc(int c, FILE *stream);
putchar() #include <stdio.h>
Выводит символ в поток stdout.
int putchar(int c);
puts() #include<stdio.h>
Выводит строку в поток stdout.
int puts(const char *s);
putw() #include <stdio.h>
Помещает в поток целое значение.
int putw(int w, FILE *stream);
_ read() #include<io.h>
Считывает данные из файла.
int _read(int handle, void *buf, unsigned len);
read() #include<io.h>
Считывает данные из файла.
int read(int handle, void *buf, unsigned len);
rewind() #include <stdio.h>
Устанавливает указатель в начало потока.
int rewind(FILE *stream);
setmode() #include<fcntl.h>
Устанавливает режим открытия файла.
int setmode(int handle, unsigned amode);
unlink() #include<io.h>
Удаляет файл.
int unlink(const char *filename);
vprintf() #include <stdarg.h>
Осуществляет форматированный вывод в стандартный поток stdout.
int vprintf (const char *format, va_list arglist);
_ write() #include<io.h>
Записывает данные в файл.
int _write(int handle, void *buf, unsigned len);
write() #include<io.h>
|
Записывает данные в файл.
int write(int handle, void *buf, unsigned len);
Пример
/* ЗАНЯТИЕ N17
Разработал Петров Ю.В.
Объявить структуру, содержащую члены типа int, float, char,
выполнить инициализацию нескольких структур в цикле и запись
их в файл. Объявить и инициализировать массивы данных для
членов структур,записать их в отдельные файлы. Ввести значения
элементов структур, прочитав их из созданных файлов данных и
дописать в конец файла структур. Прочитать структуры из
полученного файла и вывести значения членов структур на экран */
#include <stdio.h>
#include <CONIO.H>
#include <CTYPE.H>
#define N 5
int main(void)
{ struct str{ int ces;
float ves;
char tip;
} st;
FILE *fstr; //Объявление указателя на файл (для структур)
FILE *fces,*fves,*ftip;//Объявление указателей на файлы
int a, mces[ ] ={1, 24, 14, 5, 16};
float mves[ ] ={2.3, 3.4, 5.3, 5.6, 2.4};
char mtip[ ] ="abcde";
clrscr();
// Открытие файлов для записи и чтения ("w+"):
// FILE *fopen(const char *filename, const char *mode);
if ((fstr = fopen("fstr.dat", "w+")) == NULL)
{ fprintf(stderr, "Cannot open output file\n");
return 1;
}
if ((fces = fopen("fc.dat", "w")) == NULL) //Только для записи
{ fprintf(stderr, "Cannot open output file\n");
return 1;
}
if ((fves = fopen("fv.dat", "w+")) == NULL)
{ fprintf(stderr, "Cannot open output file\n");
return 1;
}
if ((ftip = fopen("ft.dat", "w+")) == NULL)
{ fprintf(stderr, "Cannot open output file\n");
return 1;
}
int i=1;
do
{ printf(" Ввод данных в файл структур: %i\n",i);
met1: printf("Ввод даты (>0, тип - int):");scanf("%i",&st.ces);
if (st.ces<=0) { fflush(stdin); goto met1;}
fflush(stdin);
met2: printf("Ввод веса (>0, тип - float):");scanf("%f",&st.ves);
if (st.ves<=0) { fflush(stdin); goto met2;}
fflush(stdin);
met3: printf("Ввод вида (тип - сhar):");scanf("%c",&st.tip);
if (!isalpha(st.tip)) { fflush(stdin); goto met3;}
|
// Запись полученной структуры в файл fstr
fwrite(&st, sizeof(st), 1, fstr);
i++;
printf("Выход а==0 Введите а="); scanf("%i", &a);
} while(a); //Конец записи структур в файл fstr
// Запись в файлы данных из массивов: mces[i], mves[i], mtip[i]
for(i=0;i<N;i++)
{//Формат и применение функций записи в файл:
//int fprintf (FILE *stream, const char *format [, argument,...]);
fprintf(fces,"%d ", mces[i]); //Из массива mces[i]
//size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream);
fwrite (&mves[i], sizeof(float), 1, fves); //Из массива mves[i]
//int fputc(int c, FILE *stream);
fputc (mtip[i],ftip); //Из массива mtip[i]
}
fclose(fces); //Закрытие файла fces
// int fseek(FILE *stream, long offset, int whence);
fseek(fves, 0L,SEEK_SET);//Установка указателя файла fves на начало
fseek(ftip, 0L,SEEK_SET);//Установка указателя файла ftip на начало
// Открытие файла fces для чтения ("r"):
if ((fces = fopen("fc.dat", "r")) == NULL)
{ fprintf(stderr, "Cannot open input file\n");
return 1;
}
printf("Ввод данных в структуры из файлов данных для отдельных членов:\n");
for(i=0;i<N;i++)
{//Формат и применение различных функций чтения данных
//из файлов и инициализация членов структуры st:
// int fscanf (FILE *stream, const char *format [, address,...]);
fscanf (fces, "%d", &st.ces);
// size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
fread (&st.ves, sizeof(float), 1, fves);
// int fgetc(FILE *stream);
st.tip=fgetc (ftip);
// Результаты инициализации членов структуры st
printf("Дата=%d Вес=%f Вид=%c \n", st.ces, st.ves, st.tip);
// Запись полученной структуры в конец существующего файла fstr
fwrite (&st, sizeof(st), 1, fstr);
}
fseek(fstr, 0L, SEEK_SET);
printf("\nВывод данных из файла структур: Дата, Вес, Вид \n");
while(1)
{ a=fread(&st, sizeof(st), 1, fstr);
if (a==0) goto end;
printf("Дата= %i Вес= %f Вид=%c\n ", st.ces, st.ves, st.tip);
}
end: fclose(fstr);
fcloseall(); //fclose(fces); fclose(fves); fclose(ftip);
getch();
return 0;
}
/* Ввод данных в файл структур: 1
Ввод даты (>0, тип - int):3
Ввод веса (>0, тип - float):4.6
Ввод вида (тип - сhar):g Выход а==0 Введите а=1
Ввод данных в файл структур: 2
Ввод даты (>0, тип - int):19
Ввод веса (>0, тип - float):2.7
Ввод вида (тип - сhar):p Выход а==0 Введите а=0
Ввод данных в структуры из файлов данных для отдельных членов:
Дата=1 Вес=2.300000 Вид=a
Дата=24 Вес=3.400000 Вид=b
Дата=14 Вес=5.300000 Вид=c
Дата=5 Вес=5.600000 Вид=d
Дата=16 Вес=2.400000 Вид=e
Вывод данных из файла структур: Дата, Вес, Вид
Дата= 3 Вес= 4.600000 Вид=g
Дата= 19 Вес= 2.700000 Вид=p
Дата= 1 Вес= 2.300000 Вид=a
Дата= 24 Вес= 3.400000 Вид=b
Дата= 14 Вес= 5.300000 Вид=c
Дата= 5 Вес= 5.600000 Вид=d
Дата= 16 Вес= 2.400000 Вид=e */
Ход работы
1 Изучить теоретические сведения.
2 В соответствии с индивидуальным заданием разработать алгоритм и программу с применением указанных функций высокого и низкого уровня.
3 Набрать программу на компьютере, и устранить ошибки.
4 Получить результат.
5 Оформить отчет.
6 Подготовиться к защите лабораторной работы, изучив контрольные вопросы по данной теме.
Индивидуальное задание к лабораторной работе №17
Составить программу для записи данных структурного типа в файл. Ввод информации осуществлять с использованием функций высокого уровня, вывод информации осуществлять с использованием функций низкого уровня. Индивидуальные задания приведены в таблице 17.1.
Таблица 17.1 - Индивидуальные задания
№ вар-та | Номер и содержание данных | ||||||
ФИО | Рост | Вес | Год рождения | Пол | Рейтинг | … | |
Название ЭВМ | Тип процессора | Объем памяти | Тип дисплея | Количество дисководов | Стоимость | … | |
Тип автомобиля | Цвет | Количество колес | Количество мест | Грузоподъемность | Стоимость | … | |
Тип автобуса | Количество мест | Грузоподъемность | Номер маршрута | Пункт назначения | Время отправления | … | |
ФИО | Номер школы | Класс | Средний бал аттестата | Любимый предмет | Нелюбимый предмет | … | |
Название магазина | Вид товара | Адрес | Время работы | Количество продавцов | Номер магазина | … | |
ФИО | Вид спорта | Личный рекорд | Иностранный язык | Срок занятий | Количество знакомых слов | … | |
Название фирмы | Объем годового оборота | ФИО директора | Штат | Стаж работы | Возраст директора | … | |
ФИО | Наличие братьев и сестер | Число | Месяц | Год рождения | Вес | … | |
Название книги | Автор | Издательство | Дата издания | Страна | Количество страниц | … | |
ФИО | Номер в группе | Название группы | Курс | Оценки | Рейтинг | … | |
Название велосипеда | Количество колес | Диаметр колес | Цвет | Грузоподъемность | Скорость | … | |
Название программного продукта | Область применения | Объем занимаемой памяти | Операционная система | Режим: текстовый или графический | Стоимость | … | |
Название рок группы | Дата создания | Стиль | Состав группы | Количество альбомов | Стоимость билета | … | |
ФИО | Номер зачетной книжки | Любимый предмет | Оценки по математике | средний бал | Язык программирования | … | |
Название журнала | Возраст читателей | Количество страниц | Начало издания | Тираж | Подписной индекс | … | |
Название самолета | Дальность полета | Количество мест | Количество двигателей | Время вылета | Время в воздухе | … | |
Название утюга | Цена | Страна производитель | Вес | Температура | Наличие регулятора | … | |
Город | Страна | Область | Почтовый индекс | Число жителей | Площадь | … | |
Операционная система | Многозадачность | Объем памяти | Версия | Фирма разработчик | Стоимость | … |