Как удалить запись из бинарного файла по определённому условию

142
22 мая 2019, 08:00

Есть структура:

struct student
{
    char name[50], gr[8], birth[11];
    int num, hist, math, prog; char skip[4];
};

Я пытался, ничего не вышло (попробовал создать новый файл и его потом переименовать в старый), совсем запутался :

void del_skip(const char* name)
{
    student z;
    FILE* f; FILE* temp;
    const char* t = "temp.txt";
    int k = number_of_records1(name);
    f = fopen(name, "rb");
    student* b = new student[k];
    while (fread(&z, sizeof(student), 1, f))
    {
        for (int i = 0; i < k; i++)
        {
            if (strcmp(z.skip, "NO")==0) b[i] = z;
        }
    }
    temp = fopen(t, "wb"); 
    int k1 = sizeof(b) / sizeof(b[0]);
    for (int i = 0; i <= k1; i++)
    {
        fwrite(&b, sizeof(student), 1, temp);
    }
    fclose(f);
    remove(name);
    //f = fopen(name, "wb"); fclose(f);
    //while (fread(&b,sizeof(student),1,temp))
    //{
    //  fwrite(&b, sizeof(student), 1, f);
    //}
    rename(t, name);
    fclose(temp); 
}
READ ALSO
Исключение при записи данных в массив, состоящий из списков

Исключение при записи данных в массив, состоящий из списков

Разрабатываю программу, которая будет искать нужный элемент при помощи хэш-таблицыХэш-таблицу организую путём создания массива, состоящего...

170
Помогите в реализации классов

Помогите в реализации классов

Мне по заданию надо реализовать:

123
Проблемы в понимании работы Spring&#39;a

Проблемы в понимании работы Spring'a

недавно смотрел видео по созданию веб-приложения с помощью Spring MVC и Freemarker и пытался понять что и к чемуНа 1:20:00 https://www

148
java.net.SocketException: Connection reset by peer. In custom twitch bot

java.net.SocketException: Connection reset by peer. In custom twitch bot

Я создал кастомного твич бота с использованием библиотеки cavariuxВызвал по очереди методы в main классе

148