работа с файлами

Тема в разделе "Общие вопросы по С и С++", создана пользователем AILEKCAHdP, 21 июн 2009.

  1. AILEKCAHdP

    AILEKCAHdP Гость

    Oрганизовать меню: Создание файла, Просмотр файла, Поиск, Выход. В файле содержатся структуры со сведениями о книгах: автор, название, издательство, год издания. Вывести сведения о книгах, изданных не ранее 1990 года издательством «Знание».

    Написал программу- файл создает и просмотр работает,а вот поиск никак
    не хочет.Подскажите пожалуйста где ошибся. Подскажите как написать функцию которая выводит сведения о книгах, изданных не ранее 1990 года издательством "Знание".

    Код (Text):
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include "locale.h"

    struct Book
    {
    char Nazv[10],Autor[10],Izdatel[10];
    int god;

    }kniga;
    void input();
    void print();
    void findbook();



    int main()
    {

    char c = 'a';
    while (c!='0')
    {
    puts("\n 1-novuy fail");
    puts(" 2-prosmotr faila");
    puts(" 3-poisk ");
    puts(" 0-vyhod");
    c = getch();
    switch(c)
    {
    case '1':input(); break;
    case '2':print();break;
    case '3':findbook();break;
    case '0':break;
    default : puts("nevernuy regim");
    }
    }
    }

    void input()
    {
    char ch;
    int res=0;
    FILE *tf=fopen("file1.dat","wb");
    printf("\n vvedite informaciu o knige \n");
    do
    {
    printf("\n nazvanie: ");
    scanf("%s",&kniga.Nazv);
    printf("\n avtor: ");
    scanf("%s",&kniga.Autor);
    printf("\n izdatelstvo: ");
    scanf("%s",&kniga.Izdatel);
    printf("\n god izdaniya: ");
    scanf("%d",&kniga.god);
    res = fwrite(&kniga,sizeof(kniga),1,tf);
    printf("\n Zakonchity ? y/n");
    ch=getch();

    } while (ch != 'y');
    fclose(tf);
    }




    void print()
    {
    int i;
    FILE *tf=fopen("file1.dat","rb");
    i=1;
    fread(&kniga,sizeof(kniga),1,tf);
    printf("\n \tnazvanie    \tavtor    \tizdatelstvo  \tgod");
    while(!feof(tf))
    {
    printf("\n %3d \t%8s \t%6s \t%4s \t%15d ",i,kniga.Nazv,kniga.Autor,kniga.Izdatel,kniga.god);
    fread(&kniga,sizeof(kniga),1,tf);
    i++;
    }
    getch();
    printf("\n");
    fclose(tf);
    }

    void findbook()
    {
    char Book[10];
    long int i;
    FILE *tf=fopen("file1.dat","rb+");
    puts(" Izdatelstvo: ");
    scanf("%s",Book);
    gets(Book);
    fread(&kniga,sizeof(kniga),1,tf);
    while (!feof(tf))
    {
    if (strcmp(kniga.Izdatel,Book)==0)
    {
    printf(" nazvanie %10s avtor %10s izdatelstvo %s god %d ",kniga.Nazv,kniga.Autor,kniga.Izdatel,kniga.god);
    getch();             
    fread(&kniga,sizeof(kniga),1,tf);
    }
    fclose(tf);  

    }
    }
     
  2. AILEKCAHdP

    AILEKCAHdP Гость

    Пасибо друг! Очень помог!
     
Загрузка...
Похожие Темы - работа файлами
  1. gx6060
    Ответов:
    2
    Просмотров:
    425
  2. seoman2
    Ответов:
    21
    Просмотров:
    767
  3. NickProstoNick
    Ответов:
    22
    Просмотров:
    1.525
  4. vladis222
    Ответов:
    3
    Просмотров:
    1.128
  5. Lyuska
    Ответов:
    1
    Просмотров:
    1.171

Поделиться этой страницей