对C文件进行数字排序
sorting C file numerically
我的文件中有一些结构,我必须按数字对它们进行排序(例如,我必须对学生的 ID 进行排序)
我写了这个但它不起作用:
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+");
}
大家好,我找到了答案。我必须在结构数组中复制数据并对数组进行排序,然后用排序后的结构数组重写文件。
我的文件中有一些结构,我必须按数字对它们进行排序(例如,我必须对学生的 ID 进行排序) 我写了这个但它不起作用:
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+");
}
大家好,我找到了答案。我必须在结构数组中复制数据并对数组进行排序,然后用排序后的结构数组重写文件。