H.K.A2 Ответов: 2

C++ school project help! !


Привет, друзья!!

Я ввел функцию, но она показывает ошибку объявления.

Это всего лишь фрагмент программы, которую я ввел..
Пожалуйста, предположите, что все заголовочные файлы и объявления классов были включены..

Я попытался написать void club:: writeinto (), но ошибка все еще сохраняется..

Что я уже пробовал:

вот эта функция:
void writeinto()
{
    club c;
    int N,i;
    {
        ofstream fout("project.dat",ios::binary);
        {
            if(!fout)
            {
                cout<<"Error";
                exit(0);
            }
            while(!fout.eof())
            {
                cout<<"Enter the number of records to be entered";
                cin>>N;
                {
                    for(i=0;i<N;i++)
                    c.enterdata();
                    fout.write((char*)&c,sizeof(c));
                }
                fout.close();
            }
        }
    }
}

jeron1

В чем же ошибка?

Richard MacCutchan

Где находится определение понятия club Пожалуйста, покажите код, связанный с проблемой, и точное сообщение об ошибке.

2 Ответов

Рейтинг:
20

Rick York

Я отредактировал ваш вопрос и переместил код в раздел "Что я пробовал" и добавил некоторые отступы, которые либо были потеряны, либо отсутствовали. Кажется, в конце отсутствует фигурная скобка. Кроме того, некоторые другие фигурные скобки не нужны.

Вот пересмотренная версия с некоторыми фигурными скобками, устраненными и скорректированными интервалами. Он также возвращает логическую переменную, чтобы указать, работает она или нет.

Кстати, я никогда не писал код, который проверяет наличие EOF при написании. Если у вас нет файла фиксированной длины, который никогда не сможет расти, я не думаю, что это когда-нибудь произойдет. По этой причине я его прокомментировал.

bool writeinto()
{
    club c;
    int N,i;

    ofstream fout( "project.dat", ios::binary );
    if( ! fout )
    {
        cout<<"Error";
        return false;
    }
//  while( ! fout.eof() )
    {
        cout << "Enter the number of records to be entered";
        cin >> N;
        for( i = 0; i < N; i++ )
        {
           c.enterdata();
           fout.write( (char*)&c, sizeof(c) );
        }
        fout.close();
    }
    return true;
}


Рейтинг:
2

H.K.A2

Большое спасибо, Рик.. Но мой компилятор показывает синтаксическую ошибку объявления в объявлении bool. Я не занимался бул в школе, так что понятия об этом не имею.. Или это проблема с моим компилятором?


Dave Kreskowiak

Поэтому измените его на void и удалите оператор return в конце.

Rick York

Я понятия не имею, почему компилятор c++ не принимает тип bool для функции. Это действительно не обязательно, так что попробуйте то, что рекомендовал Дейв.

Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением. НЕ опубликуйте свой ответ как новое "решение".