У меня есть несколько структур в моем файле, и мне нужно отсортировать их численно (например, мне нужно отсортировать идентификаторы студентов) Я написал это, но это не работает:
int i = 0;
fseek(fileKALAJADIDptr, 0, SEEK_SET);
while (fread(&KJadid, sizeof(struct KalaJadid), 1, fileKALAJADIDptr))
{
int j = i + 1;
fseek(fileKALAJADIDptr2, j * sizeof(struct KalaJadid), SEEK_SET);
while (fread(&KJadid2, sizeof(struct KalaJadid), 1, fileKALAJADIDptr2))
{
if (KJadid.Tedad > KJadid2.Tedad)
{
struct KalaJadid swap = KJadid;
KJadid = KJadid2;
KJadid2 = swap;
fwrite(&KJadid2, sizeof(struct KalaJadid), 1, fileKALAJADIDptr2);
fseek(fileKALAJADIDptr, i * sizeof(struct KalaJadid), SEEK_SET);
fwrite(&KJadid, sizeof(struct KalaJadid), 1, fileKALAJADIDptr);
}
j++;
}
i++;
}
fclose(fileKALAJADIDptr);
fclose(fileKALAJADIDptr2);
сначала все, что я указываю на начало файла с помощью fseek, у нас есть «while» для сортировки (я использую сортировку по выбору) , но это не работает, и я получаю ошибку времени выполнения ... что мне делать?
openning file part :
FILE* fileKALAJADIDptr = fopen(fileKALAJADID, "r+b");
FILE* fileKALAJADIDptr2 = fopen(fileKALAJADID, "r+b");
if (fileKALAJADIDptr == NULL)
{
fopen(fileKALAJADID, "w+");
}
вот код: https://code.sololearn.com/c8Bh9vtao0C0/#cpp