Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Функции для работы с файламиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
с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> Связывает поток с логическим номером файла. 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 - Индивидуальные задания
Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы 1 Приведите общий формат объявления функции. 2 Приведите формат определения функции. 3 Какие классы памяти используются при объявлении функций. 4 Охарактеризуйте формальные параметры приведенных функций. 5 Что означает запись FILE *? 6 Что означает термин-поток? 7 Какие стандартные потоки открываются при выполнении программы? 8 Какие существуют режимы работы с файлами? 9 Какие заголовочные файлы содержат объявления библиотечных функций для работы с потоками. 10 Какие функции обеспечивают форматированный ввод/вывод данных? 11 Что такое буферизация и можно ли ею управлять? Лабораторная работа № 18 Разработка программ с многофайловой структурой. (4 часа) Цель работы: ознакомиться с написанием программ с многофайловой структурой, заголовочными файлами, изучить классы памяти переменных и функций, научиться создавать модульные программы и заголовочные файлы. Изучить область действия и время жизни переменных и функций с различными классами памяти. Теоретические сведения
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-04-26; просмотров: 745; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.148 (0.007 с.) |