• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы ilya1989
  • Дата начала
I

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
    11,3 КБ · Просмотры: 446
L

lazybiz

Блин. Так у тебя запись в несуществующий элемент массива происходит:
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++ )
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!