2009年9月12日 星期六

C/C++筆記-檔案內字串搜尋程式碼

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define fn "textfile.txt"

int search(FILE*,char *);
int main(void)
{
  int last=0;
  char buf[80];
  FILE *fp;
  fp = fopen(fn,"r+");
  scanf("%s",buf); //輸入要找的字串
  while(1)
  {
    int line = search(fp,buf);
    if(line)
      printf("%s found in line %d.\n",buf,line+last);
    else
      break;
    last += line; //更新目前計算的行數
  }
  fclose(fp);
  system("pause");
  return 0;
}

int search(FILE *fp,char *s)
{
  int i,j=0;
  char buf[80];
  for(i=1 ; fgets(buf,80,fp) != NULL ; i++)
    if(strstr(buf,s) != NULL) //從buf字串中找s字串
      return i;
  return 0;
}
##ShowAll##

2 意見 :

匿名 提到...

int line那一行出錯0.0
16 C:\Users\HSK20150907\Desktop\新文件1 (1).cpp cannot convert `int*' to `char*' for argument `2' to `int search(FILE*, char*)'
他顯示這個

MEMO123 提到...

感謝,已修正

張貼留言