Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2014, 14:36   #1
Config
Новичок
Джуниор
 
Регистрация: 21.01.2014
Сообщений: 1
По умолчанию Работа с файлами на СИ++

Помогите плиз. Вот сделал программу все работает. Препод сказал выведи информацию с названием книги ,,KAI" Помогите сделать а то уже голова не варит ((
Код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include "locale.h"
 
struct book
{
char name[10];
char nazv[10];
char data[10];
char number[10];
}bk;
void input();
void print();
void app();
void findbook();
//void smena();
 
 int main()
 { 
char c = 'a';
setlocale(LC_ALL,"Russian");
    while (c!='0')
    {
       puts("1-новый файл");
       puts("2-просмотр файла");
       puts("3-добавление в файл");
       puts("4-поиск и изменение");
       puts("5-смена книги");
       puts("0-выход");
       c = getch();
       switch(c)
       {
          case '1':input(); break;
          case '2':print();break;
          case '3':app();break;
          case '4':findbook();break;
         // case '5':smena();break;
          case '0':break;
          default : puts("неверный режим");
       }
      }
  }
 
  void input()
  {
  char ch;
  int res=0;
      FILE *tf=fopen("file1.dat","wb");
      printf("\n Введите информацию о книге \n");
      do
      { 
        printf("\n Номер читательского билета: "); 
        scanf("%s",bk.number);
        printf(" Автор книги: "); 
        scanf("%s",&bk.name);
        printf(" Название: "); 
        scanf("%s",&bk.nazv);
        printf(" Дата заказа: "); 
        scanf("%s",&bk.data);
        res = fwrite(&bk,sizeof(bk),1,tf);
        printf("\n Закончить ? y/n \n");
        ch=getch();
      }
      while (ch != 'y');
      fclose(tf);
   }
   
  void app()
  {
  char ch;
      FILE *tf=fopen("file1.dat","ab");
      printf("\n Введите информацию о книге \n");
      do
      { 
         printf("\n Номер читательского билета: "); 
         scanf("%s",bk.number);
         printf(" Автор книги: "); 
         scanf("%s",&bk.name);
         printf(" Название: "); 
         scanf("%s",&bk.nazv);
         printf(" Дата заказа: "); 
         scanf("%s",&bk.data);
         fwrite(&bk,sizeof(bk),1,tf);
         printf("\n Закончить ? y/n \n");
         ch=getch();
       }
       while (ch != 'y');
       fclose(tf);
  }
   
  
  void print()
  { 
  int n; 
      FILE *tf=fopen("file1.dat","rb");
      n=1;
      fread(&bk,sizeof(bk),1,tf);
  printf("\n \tНомер \tАвтор \tНазвание \tДата  \n");
      while(!feof(tf))
      {
  printf("\n%d \t%s \t%s \t%s \t%10s ",n,bk.number,bk.name,bk.nazv,bk.data);
          fread(&bk,sizeof(bk),1,tf);
          n++;
      }
      getch();
  printf("\n");
  fclose(tf);
   }
   
  void findbook()
  {
  char c, BOOK[10];
      long int i;
      FILE *tf=fopen("file1.dat","rb+");
      puts(" Введите автора книги: ");
      gets(BOOK);
      fread(&bk,sizeof(bk),1,tf);
      while (!feof(tf))
      {
  if (strcmp(bk.name,BOOK)==0)
          {
  printf(" Номер %10s Автор %6s Название %s  Дата %6s",bk.number,bk.name,bk.nazv,bk.data);
              printf("\n Изменить ? y/n \n");
              c=getch();
              if (c=='y')
              {
  printf("\n Автор: "); 
  scanf("%s",&bk.name);
                  printf("\n Номер: "); 
  scanf("%s",&bk.number);
                  i=sizeof(bk);
                  fseek(tf,-i,1);
                  fwrite(&bk,sizeof(bk),1,tf);
                  break;
              }
           }
           fread(&bk,sizeof(bk),1,tf);
       }
      fclose(tf);
   }

Последний раз редактировалось Stilet; 21.01.2014 в 14:49.
Config вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами Funy Помощь студентам 0 16.01.2012 15:44
Работа с файлами Fora Общие вопросы C/C++ 7 15.06.2011 23:06
Работа с файлами на С# Darh Помощь студентам 6 11.06.2010 03:00
Работа с файлами lubov_morkov Паскаль, Turbo Pascal, PascalABC.NET 8 10.06.2010 11:59
работа с файлами smb. Помощь студентам 4 26.03.2009 17:06