Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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; просмотров: 163.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...