求文件问题的答案!

everbbbb 2007-10-30 10:02:38
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);
}

现在我显示在屏幕也有问题,大大们帮我看一下, 谢了!!
...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
proware 2007-10-30
  • 打赏
  • 举报
回复
fscanf(fp,"%s %s %d %c %c %d",name,id,&age,&sex,&unknown,&salary);
关键是这个函数....
它每次把一行按照列读入到相应的变量中.
列的划分是以空格为分割符...

所以上面函数中的格式符号中间以空格隔开.
proware 2007-10-30
  • 打赏
  • 举报
回复
假设你的第三列是年龄,第四列是性别

#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);
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧