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

文件的有关问题!

2012-03-09 
文件的问题!!LanvinDepartmentStoreCustomerPurchasesOctober2007tan!celine012318FC180clinton!mary34764

文件的问题!!
Lanvin   Department   Store
Customer   Purchases   October   2007

tan!celine         0123   18   F   C   180
clinton!mary     3476   41   F   C   850
lee!lester         2134   32   M   E   400
tai!june             2453   30   F   C   320
foster!liz         1199   27   F   H   275

如果要从文件中读出上边的数据,然后把上边数据中超过25岁的女人分出来,然后显示在屏幕(第二行是F的是女人,第3竖行是年龄),怎样做?

文件名是:lanvin.txt.


#include <stdio.h>
main()
{
FILE   *fp;
char   ch;
if((fp=fopen( "lanvin.txt ", "rt "))==NULL)
{
printf( "Cannot   open   file   strike   any   key   exit! ");
getch();
exit(1);
}
ch=fgetc(fp);
while   (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}

现在我显示在屏幕也有问题,大大们帮我看一下,   谢了!!

[解决办法]
假设你的第三列是年龄,第四列是性别


[code=C/C++][/code]
#include <stdio.h > 
main() 

FILE *fp; 
char ch; 
char name[20];
char id[10];
int age;
char sex;
char unknown;
int salary;
if((fp=fopen("lanvin.txt","rt"))==NULL) 

printf("Cannot open file strike any key exit!"); 
getch(); 
exit(1); 


while (!feof(fp)) 

fscanf(fp,"%s %s %d %c %c %d",name,id,&age,&sex,&unknown,&salary);
if(sex=='F'&&age>25)
printf("%s %s %d %c %c %d\n",name,id,age,sex,unknown,salary);

fclose(fp); 
}

[/code]



fscanf(fp,"%s %s %d %c %c %d",name,id,&age,&sex,&unknown,&salary);
关键是这个函数....
它每次把一行按照列读入到相应的变量中.
列的划分是以空格为分割符...

所以上面函数中的格式符号中间以空格隔开.

热点排行