| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5796 人关注过本帖
标题:如何从一个文件中搜索该单词并输出该单词~
取消只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏
已结贴  问题点数:20 回复次数:8 
如何从一个文件中搜索该单词并输出该单词~
简单就是先输入一个单词~然后从文件搜索看看有没有该单词~如果有就输出该单词~
我对文件不太熟悉希望能帮忙看看代码或者看看有什么高见~

@renkejun1942
~~~~~~~~~~~~~
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    FILE *p;
    char s[3][10];
    char tem[10];
    scanf("%s",tem);
    int i=0;
    if((p=fopen("f:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }
    for(i=0;i<3;i++)
    {
            if(strcmp(tem,fgets(s[i],10,p))==0)
            {
                printf("%s\n",s[i]);
            }
    }
    fclose(p);
    return 0;
}//



[此贴子已经被作者于2017-6-17 22:00编辑过]

搜索更多相关主题的帖子: 单词 如何 
2017-06-17 21:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
现在有两个建议,一个建议存起来再对比,一个建议用正则表达式~这块我也不太清楚~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-17 22:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
问题已经简单解决了~
附加修改代码~
如果要文本可以参考一下~
f.rar (411 Bytes)

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    FILE *p;
    char s[3][10];
    char t[3][10];
    char tem[10];
    int i=0;
    scanf("%s",tem);
   
    if((p=fopen("D:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }
    for(i=0; i<3; i++)
    {
        strcpy(t[i],fgets(s[i],10,p));
        t[i][strlen(t[i])-1]='\0';
        if(strcmp(tem,t[i])==0)
        {
            printf("%s\n",t);
        }
    }
    fclose(p);
    return 0;
}



[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-17 23:21
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
@renkejun1942

这次是输入单词~然后在文件中找到该单词并输出其对应中文的意思~帮忙看看代码哪里出问题了~~~
f.rar (427 Bytes)

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct word
{
    char s[3][10];
    char z[3][10]
}w[3];
int main()
{
    FILE *p;

   // char s[3][10];
    char t[3][10];
    char tem[10];
    int i=0;
    scanf("%s",tem);

    if((p=fopen("f:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }
    for(i=0; i<3; i++)
    {
        strcpy(t[i],fgets(w[i].s,10,p));
        t[i][strlen(t[i])-1]='\0';
        if(strcmp(tem,t[i])==0)
        {
            printf("%s\n",w[i].s);
        }
    }
    fclose(p);
    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 17:33
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 10楼 renkejun1942
如果要进行一些高级一点的文件操作~感觉还是用数据库比较好~在查找大量数据里面~数据库的效率应远比单纯的文件查找效率高~这和数据库的储存结构框架系统化有关~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 17:36
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 renkejun1942
那能否帮忙看看怎么改改~
现在我先处理点事~要么晚点有时间还是我自己弄弄吧~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 17:44
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 17楼 renkejun1942
久久是这样改改的~虽然用fscanf不是很安全~不过改进一下可以加输入数量限制~

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct word
{
    char s[3][10];
    char z[3][10];
}w[3];


int main()
{
    FILE *p;

    char t[3][10];
    char tem[10];
    int i=0;

    scanf("%s",tem);

    if((p=fopen("D:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }

    for(i=0; i<3; i++)
    {
        fscanf(p,"%s",t[i]);

        if(strcmp(tem,t[i])==0)
        {
            strcpy(w[i].z,t[i]);
            fscanf(p,"%s",w[i].s);

            printf("%s\n",w[i].z);
            printf("%s\n",w[i].s);
        }
    }
    fclose(p);
    return 0;
}


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 18:11
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
不过就是每行占用的字节数目不一定相同~这和文件储存的结构有关~不然直接用fread就可以了~虽然fread更适用于二进制文件~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 18:25
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
然后改了改~这样也可以~

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct word
{
    char s[3][10];
    char z[3][10];
}w[3];


int main()
{
    FILE *p;

    char t[3][10];
    char tem[10];
    int i=0;

    scanf("%s",tem);

    if((p=fopen("D:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }

    for(i=0; i<3; i++)
    {
        fscanf(p,"%s%s",w[i].s,w[i].z);

        if(strcmp(tem,w[i].s)==0)
            printf("%s\n",w[i].z);

    }
    fclose(p);
    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-18 19:08
快速回复:如何从一个文件中搜索该单词并输出该单词~
数据加载中...
 
   



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

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