首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于文字处理解决思路

2013-01-23 
关于文字处理要求写一个程序读取popu2000.txt 然后将数据分类放进构造体里面能读取出来 但不知道应该怎么

关于文字处理
要求写一个程序读取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);
}

热点排行