| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:简单的fscanf函数问题
只看楼主 加入收藏
langlangxion
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2009-6-13
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:5 
简单的fscanf函数问题
#include<stdio.h>
#include"ctype.h"
#define N 1000
main()
{
    FILE *fp;
    char str[N],str1[N],found=0;
    while(1)
    {
    if((fp=fopen("TeleBook.txt","r"))==NULL)
    {
        printf("can,t open TeleBook or do,t have it");
        getch();
        exit(1);
    }

    printf("please input the name you want to search:");
    scanf("%s",str);
    while(!feof(fp))
    {
        fscanf(fp,"%s",str1);
        if(strcmp(str1,str)==0)
        {
            found=1;
            fscanf(fp,"%s",str1);
            fscanf(fp,"%s",str1);
            if(isdigit(str1[0]))
            printf("%s tellphone number is %s\n",str,str1);
            else
            printf("%s tellphone is wrong\n");
            break;

        }
    }
    if(!found) printf("there don't have %s.\n",str);
    fclose(fp);
   }
    getch();
}
TeleBook.txt文件:
aaa 111
bbb 222
ccc 333
运行编译后
aaa
aaa tellphone is wrong
bbb
bbb tellphone is wrong
ccc
ccc tellphone number is 333
为什么输入 aaa 不是输出 aaa tellphone number is 111请高手帮忙解答一下,在这里先谢了!
搜索更多相关主题的帖子: 函数 fscanf 
2009-10-30 14:47
langlangxion
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2009-6-13
收藏
得分:0 
在线等!急哦,请高手帮忙下。我在这里先谢了!
2009-10-30 14:48
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:10 
if(strcmp(str1,str)==0)
        {
            found=1;
            fscanf(fp,"%s",str1);
            fscanf(fp,"%s",str1); /* 删了这些红色语句 */
            if(isdigit(str1[0]))
            printf("%s tellphone number is %s\n",str,str1);
            else
            printf("%s tellphone is wrong\n");

            break;   
        }  
   
·
程序代码:
#include<stdio.h>
#include"ctype.h"
#define N 1000
main()
{
    FILE *fp;
    char str[N],str1[N],found=0;
    while(1)
    {
    if((fp=fopen("TeleBook.txt","r"))==NULL)
    {
        printf("can,t open TeleBook or do,t have it");
        getch();
        exit(1);
    }
    found=0; /* 多加这条赋值语句 */
    printf("please input the name you want to search:");
    scanf("%s",str);
    while(!feof(fp))
     {
      fscanf(fp,"%s",str1);
        if(strcmp(str1,str)==0)
        {
            found=1;
            fscanf(fp,"%s",str1);
            printf("%s tellphone is %s\n",str,str1);
            break;
        }
     }
    if(!found) printf("there don't have %s.\n",str);
    fclose(fp);
   }
    getch();
}

 

[ 本帖最后由 UserYuH 于 2009-10-30 15:57 编辑 ]

努力—前进—变老—退休—入土
2009-10-30 15:23
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
来顶UserYuH的;
2009-10-30 15:26
langlangxion
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2009-6-13
收藏
得分:0 
回复 3楼 UserYuH
谢谢大哥帮忙!
2009-10-30 15:39
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
if(isdigit(str1[0]))
   printf("%s tellphone number is %s\n",str,str1);
else
   printf("%s tellphone is wrong\n");
   break;
客气,上面这几条语句可以去掉,我在3楼重新编辑去掉了。

努力—前进—变老—退休—入土
2009-10-30 15:52
快速回复:简单的fscanf函数问题
数据加载中...
 
   



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

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