Задать вопрос
Mag1str
@Mag1str

Почему не работает redac?

Должно редактировать, но почему-то не ворк.
331 строчка в base.h

Ссылка на проект: https://github.com/Roman200242/school

Все в одном файле: https://ideone.com/ESBmh0
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Mag1str
@Mag1str Автор вопроса
void redac()
    {
        system("cls");
        Stud ob[1000];
        fstream del;
        del.open(file, ios::in | ios::out | ios::binary);
        if (!del.is_open()) {
            cout << "Помилка!" << endl;
            exit(1);
        }
        int count = 0;
        while (!del.eof()) {
            del.read((char*)&ob[count], sizeof(Stud));
            count++;
        }
        look();
        count--;
        cout << "Введіть особистий номер учня для редагування: ";
        double number;
        cin >> number;
        del.close();
        del.clear();
        del.open(file, ios::out | ios::binary);
        for (int x = 0; x < count; x++)
            if (ob[x].number != number)
                del.write((char*)&ob[x], sizeof(Stud));
        enter();
        cout << "Успішно!" << endl;
        del.close();
    }

void enter()
    {
        Stud ob;
        ofstream out;
        out.open(file, ios::out | ios::app | ios::binary);
        if (!out) {
            cout << "Помилка";
        }
        system("cls");
        detail();
        cout << "Клас: ";
        cin >> ob.clas;
        cout << "Особистий номер: ";
        cin >> ob.number;
        eatline();
        cout << "Прізвище: ";
        cin.getline(ob.prizv, 15);
        cout << "Ім'я: ";
        cin.getline(ob.name, 15);
        cout << "По батькові: ";
        cin.getline(ob.batk, 15);
        if (ob.number < 499) {
        cout << "Українська мова: ";
        cin >> ob.ukr_mov;
        cout << "Математика: ";
        cin >> ob.matem;
        cout << "Іноземна мова: ";
        cin >> ob.in_mov;
        cout << "Фіз-ра: ";
        cin >> ob.fizra;
        ob.ukr_lit = '\0';
        ob.informatic = '\0';
        ob.fizika = '\0';
        ob.istor_ukr = '\0';
        ob.geografiy = '\0';
        ob.biologia = '\0';
        ob.seredniy_bal = (ob.matem + ob.ukr_mov + ob.in_mov + ob.fizra) / 4;
            } else {
        cout << "Українська мова: ";
        cin >> ob.ukr_mov;
        cout << "Математика: ";
        cin >> ob.matem;
        cout << "Українська література: ";
        cin >> ob.ukr_lit;
        cout << "Іноземна мова: ";
        cin >> ob.in_mov;
        cout << "Інформатика: ";
        cin >> ob.informatic;
        cout << "Фізика: ";
        cin >> ob.fizika;
        cout << "Історія України: ";
        cin >> ob.istor_ukr;
        cout << "Географія: ";
        cin >> ob.geografiy;
        cout << "Біологія: ";
        cin >> ob.biologia;
        cout << "Фіз-ра: ";
        cin >> ob.fizra;
 
        ob.seredniy_bal = (ob.matem + ob.ukr_mov + ob.informatic + ob.ukr_lit + ob.in_mov + ob.biologia + ob.istor_ukr + ob.fizika + ob.fizra + ob.geografiy) / 10;
        }
        eatline();
        out.write((char*)&ob, sizeof ob);
        out.close();
        system("pause");
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы