标题:昨晚编完一道题,突然把一代码换位置,发现问题,帮解析~~~~
取消只看楼主
wangnengchao
Rank: 2
等 级:论坛游民
帖 子:90
专家分:55
注 册:2011-5-2
结帖率:100%
已结贴  问题点数:20 回复次数:1 
昨晚编完一道题,突然把一代码换位置,发现问题,帮解析~~~~
/*利用操作系统的任意一个文本编辑器建立一个通信录文件address.txt,其数据可以是若干个朋友的信息记录。
一个记录占一行,每个记录内容由姓名、手机电话和E-mail地址等数据组成。设计一个C语言程序,能够根据
输入的朋友的姓名来查找他(她)的完整信息,包括姓名、手机电话和E-mail等。 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct fri_infor{
    char name[20];
    char telephone[50];
    char e_mail[50];
};
int main(void)
{
    FILE *fp;
     char find_name[20];
    struct fri_infor friend;
    if((fp=fopen("C:\\Users\\wang\\Desktop\\address.txt","r"))==NULL)
    {
      printf("file open faile \n");
      exit(2);
    }
    printf("Please input your friend's name: ");
    scanf("%s",find_name);
   fscanf(fp,"%s %s %s\n",friend.name,friend.telephone,friend.e_mail);//(1)
    while(feof(fp)==0)
    {      
        if((strcmp(find_name,friend.name))==0)
        printf("%s %s %s\n",friend.name,friend.telephone,friend.e_mail);
        fscanf(fp,"%s %s %s\n",friend.name,friend.telephone,friend.e_mail);//(2)
    }
    fclose(fp);
    return 0;
}
  (1)、(2)那样用会出现文件最后一行的信息不能被读取!!!!而把调回来就可全部读取了!!如下:                        
     while(feof(fp)==0)
    {         
        fscanf(fp,"%s %s %s\n",friend.name,friend.telephone,friend.e_mail);   
        if((strcmp(find_name,friend.name))==0)
        printf("%s %s %s\n",friend.name,friend.telephone,friend.e_mail);
        
    }
               
搜索更多相关主题的帖子: friend 手机电话 编辑器 C语言 朋友 
2011-06-19 13:07
wangnengchao
Rank: 2
等 级:论坛游民
帖 子:90
专家分:55
注 册:2011-5-2
得分:0 
回复 2楼 voidx
谢谢高手哈
2011-06-19 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343355-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.381215 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved