名前の後に名前の優先度である数字が続くテキストファイルがあります。今、テキストファイルを優先度でソートして新しいファイルを書き込もうとしています。
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;
}