помогите пожалуйста исправить ошибку в коде задачи

Тема в разделе "C/C++/C#", создана пользователем ilya1989, 3 апр 2011.

  1. ilya1989

    ilya1989 Гость

    Здравствуйте,уважаемые программисты форума!
    Бьюсь над следующей ситуацией:
    Вот код,который я сам попробовал написать для задачи,иллюстрирующей картотеку книг.Сразу оговорюсь,что по условиям задачи программа должна не только сохранять информацию в файл,но так же и считывать информацию из файла....но,меня пока что интересует запись в файл.
    код:
    Код (C++):
    #include <iostream.h>
    #include <fstream.h>
    #include <conio.h>
    #define A 1
    class Book
    {
    char name[80];
    char FIO[80];
    int page;
    char publishing_office[80];
    char publication_date[10];
    public:
    void create_new_entry();
    void view_all_entryes();
    };
    void create_fail(Book);
    void Book::create_new_entry()
    {
    ofstream record("Books.txt");
    cout<<"Vvedite nazvaniye knigi :";
    cin.getline(name,80);
    record<<name<<endl;
    cout<<"Vvedite FIO autora :";
    cin.getline(FIO,80);
    record<<FIO<<endl;
    cout<<"Vvedite collichestvo stranits :";
    cin>>page;
    cin.ignore();
    record<<page<<endl;
    cout<<"Vvedite naimenovaniye izdatel`stva :";
    cin.getline(publishing_office,80);
    record<<publishing_office<<endl;
    cout<<"Vvedite date publicatsii(data.mesyats.god): ";
    cin.getline(publication_date,80);
    record<<publication_date<<endl;
    record.close();
    }




    //vvod v fail

    void create_fail(Book kniga[A])
    {
    for(int b=1;b<=A;b++)
    {
    cout<<"Kniga N"<<b<<endl;
    cout<<"------------------------------"<<endl;
    kniga[b].create_new_entry();
    }
    }



    void main()
    {
    Book knigs[A];
    create_fail(knigs);
    }
    компилируется,но при вводе колличества страниц выдается неизвестная для меня ошибка...

    помогите пожалуйста с исправлением.Заранее благодарю!
     

    Вложения:

    • __________.jpg
      __________.jpg
      Размер файла:
      32,6 КБ
      Просмотров:
      33
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    cin.getline(publication_date,80); --- размер 80

    char publication_date[10]; --- размер 10
     
  3. ilya1989

    ilya1989 Гость

    Спасибо огромное за помощь!

    Добавлено: уважаемый lazybiz,я изменил Ваше замечание,но ведь это не решило проблему.программа так же выдает ошибку
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Блин. Так у тебя запись в несуществующий элемент массива происходит:
    Код (C++):
    void create_fail(Book kniga[A])
    {
    for(int b=1;b<=A;b++)
    {
    cout<<"Kniga N"<<b<<endl;
    cout<<"------------------------------"<<endl;
    kniga[b].create_new_entry(); <--- при первой итерации b == 1 !!!! а должно быть 0 !!
    }
    }
    Переделай цикл вот так:
    Код (C++):
    for ( int b = 0; b < A; b++ )
     
Загрузка...
Похожие Темы - помогите пожалуйста исправить
  1. victory
    Ответов:
    0
    Просмотров:
    963
  2. victory
    Ответов:
    0
    Просмотров:
    789
  3. Ivan3333567
    Ответов:
    2
    Просмотров:
    1.413
  4. limbra
    Ответов:
    3
    Просмотров:
    46
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    66

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