>>450 sscanf使ってみた。
#include<stdio.h>
#define LENGTH 50 /* 一単語の最大長(文字数)*/
typedef struct {
char term[LENGTH]; /* 単語 */
int freq; /* 頻度 */
} termFreq;
void sortByFreq(termFreq word[],int num){
int i,j;
termFreq tmp;
for(i=0;i<num;i++){
for(j=num-1;j>i;j--){
if(word[j-1].freq < word[j].freq){
tmp=word[j-1]; word[j-1]=word[j]; word[j]=tmp;
}
}
}
}
main(){
int num=0,i;
char line[LENGTH*2];
termFreq wordFreq[500];
FILE *fp;
fp=fopen("dat.txt","r");//ファイル名は任意で書き換える
while(fgets(line,2*LENGTH-1,fp)!=NULL){
sscanf(line,"%s\t%d",wordFreq[num].term,&wordFreq[num].freq); num++;}
sortByFreq(wordFreq,num);
for(i=0;i<num;i++)
printf("%s\t%d\n",wordFreq[i].term,wordFreq[i].freq);
}