关于文字处理解决思路

关于文字处理
要求写一个程序读取popu2000.txt 然后将数据分类放进构造体里面
能读取出来 但不知道应该怎么判比分类。。。
求高人指点
在线等消息。。


数据:

北海道 5683062

青 森 1475728

岩 手 1416180

宮 城 2365320

秋 田 1189279

山 形 1244147

福 島 2126935

茨 城 2985676

栃 木 2004817

群 馬 2024852

埼 玉 6938006



typedef struct city{
char name[10];
int popu;
}


void main( ) {
count();
}

void count(){
char buf[256];
FILE *fpR;
if((fpR = fopen("popu2000.txt","r")) == NULL){
printf("Cannot open the file!");
exit(1);
}
while(fgets(buf,256,fpR) != NULL){
// WBT.name = buf;
// WBT.popu = buf;
puts(buf);
}

fclose(fpR);
}
文字处理

------解决方案--------------------
仅供参考
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.

------解决方案--------------------

//简单写一个
#include <stdio.h>
#include <stdlib.h>

typedef struct city{
char name[10];
int popu;
};

int main()
{
struct city WBT[100];
FILE *f;
char szName[10];
int nPopu, index = 0;
f = fopen("filename.txt", "r");
if (f) {
while (fscanf(f, "%s%d", &szName, &nPopu) > 0 ) {
strcpy(WBT[index].name, szName);
WBT[index++].popu = nPopu;
}
}
fclose(f);
}