我有一个文本文件,其名称后跟一个数字,即名称的优先级,现在我正在尝试按优先级对文本文件进行排序并编写一个新文件。
old
name1 1
name2 2
name3 3
name4 1
name5 1
name6 2
name7 1
name8 3
new
name 1 1
name4 1
name5 1
name2 2
name6 2
name3 3
name8 3
我已经实现了将旧文本文件放入数组中,但我坚持按优先级对该数组进行排序。我不应该再次遍历文件,只想对数组进行排序,然后将新排序的数组写入新的文本文件。我该如何进行??
编码
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int p;
char *name;
}names;
int main(void){
FILE *old= fopen("old.txt", "r");
FILE *new = fopen("new.txt", "w");
char n[10];
int i =0;
names *name= malloc(sizeof(names));
for(i; i<count; i++){
int p;
char *n= malloc(sizeof(char) * 4);
fscanf(old, "%s %i", n, &p);
names[i].name= n;
names[i].p= p;
}
int j=0;
for(i=0; i < count;i++){
}
return 0;
}