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