寻找文本文件中的关键词

时间:2015-03-07 20:16:59

标签: c

我想通过只读取每行的第一个单词来搜索文件中的单词,并复制第一个单词与另一个文件相似的整行。此代码正在读取整个文件而不是每行的第一个单词。

#include<stdio.h>
#include<string.h>
int main()
{
    int check=1;
    FILE *fp,*fp1;
    char ser[200],oneword[200],c;
    printf("Enter the word:");
    scanf("%s",ser);
    fp=fopen("4HHB.pdb","r");
    fp1=fopen("file2.dat","a+");
    do
    {
     if(check!=0)
     {
         c=fscanf(fp,"%s",oneword);
         //printf("hi  %s\n",oneword);
         check = strcmp(oneword,ser);
     }
     if(check==0)
     {
         //printf("Hello");
         check=1;
         fprintf(fp1,"%s ",oneword);
         c=fgetc(fp);
         while(c!=10&&c!=EOF)   // The ASCII code for \n is 10
         {

            fputc(c,fp1);
            c=fgetc(fp);
           // if(c=="\n")
             //   break;
         }
         fputc(c,fp1);
     }
    }while(c!=EOF);
    fclose(fp);
    fclose(fp1);
    return 0;
}

1 个答案:

答案 0 :(得分:1)

当一个单词匹配时,该行需要读/写。

当一个单词(代码当前正在检查所有单词,而不仅仅是每行的第一个单词)不匹配时,需要读取/丢弃该行的其余部分。

强烈建议通过fgets()读取每一行,然后解析第一个单词以决定是否要写入或丢弃该行。