关于文字处理解决思路
关于文字处理
要求写一个程序读取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);
}
------解决方案--------------------
仅供参考
------解决方案--------------------
要求写一个程序读取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);
}