读书人

文件的有关问题!

发布时间: 2012-03-09 16:54:57 作者: rapoo

文件的问题!!
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);
关键是这个函数....
它每次把一行按照列读入到相应的变量中.
列的划分是以空格为分割符...

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

读书人网 >C语言

热点推荐