Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
II. Экспериментальный раздел работы.
Пример 1: Посимвольный вывод содержимого файла на экран. #include <iostream.h> #include <stdio.h> #include <stdlib.h> void main() { FILE *f; char c; char *filename=”f.txt”; if((f=fopen(filename,”r”)==0) { perror(filename); exit(0); } while(c=fgetc(f)!=EOF) putchar(c); //вывод с на стандартное устройство вывода fclose(f); } Измените программу так, чтобы работа велась со строками. Пример 2. Копирование содержимого файла. … int MAXLINE=255;//максимальная длина строки FILE *in,//исходный файл *out;//принимающий файл char* buf[MAXLINE];//строка, с помощью которой выполняется копирование in=fopen(“f1.txt”,”r”);//открыть исходный файл для чтения out=fopen(“f2.txt”,”w”);//открыть принимающий файл для записи while(fgets(buf,MAXLINE,in)!=0)//прочитать байты из файла in в строку buf fputs(buf,out);//записать байты из строки buf в файл out fclose(in);fclose(out);//закрыть оба файла … Поэкспериментируйте с предложенным отрывком программы, доработайте для копирования по следующей схеме A->B->C. Пример 3. Создание базы данных сотрудников предприятия. struct Employee { char name[30]; char title[30]; float rate; }; void main() { Employee e; FILE *f; if((f=fopen(“f.dat”,”wb”))==NULL) { cout<<”\n Невозможно открыть файл для записи”; exit(1); } int n; //запись в файл printf(“\nN-?”); scanf(“%d”,&n); for(int i=0;i<n;i++) { //формируем структуру е printf(“\nname:”);scanf(“%s”,&e.name); printf(“\ntitle:”);scanf(“%s”,&e.title); printf(“\nrate:”);scanf(“%s”,&e.rate); //записываеме в файл fwrite(&e,sizeof(Employee),1,f); } fclose(f); //чтение из файла if((f=fopen(“f.dat”,”rb”))==NULL) { cout<<”\n Невозможно открыть файл для чтения”; exit(2); } while(fread(&e,sizeof(Employee)1,f) { printf(“%s % s%f”, e.name, e.title, e.rate) } fclose(f); }
Пример 4. Редактирование базы данных сотрудников предприятия
//добавление записи в файл void add(char *filename) { student a; int n; f=fopen(filename,”a”)открыть файл для добавления cout<<"\nHow many records would you add to file?"; cin>>n; for(int i=0;i<n;i++) { прочитать объект fwrite(&a,sizeof(student),1,f);//записать в файл } fclose(f);//закрыть файл
}
//удаление записи с номером х void del(char *filename) { FILE *f, *temp; f=fopen(filename,”rb”);//открыть исходный файл для чтения temp=fopen(“temp”,”wb”)//открыть вспомогательный файл для записи student a; for(long i=0;.fread(&a,sizeof(student),1,f);i++) if(i!=x) { fwrite(&a,sizeof(student)1,temp); } else { cout<<a<<" - is deleting..."; } fclose(f); fclose(temp); remove(filename); rename(“temp”, filename); } Измените программу, представленную в примере 3, используя предложенные подпрограммы. |
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 199. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |