#include <stdio.h>
#include <string.h>
int main()
{
char s[20];
FILE *fp;
char filename[100],c;
int i=0,n=0,m=0;
long fpos,len;
//********************************************************************
printf("请输入文件名:\n");
gets(filename); //输入文件名称
if((fp=fopen(filename,"r"))==NULL) //打开文件
{
printf("打开 %s 错误!\n",filename);
return 1;
}
printf("请输入一个字符串:\n");
gets(s);
//********************************************************************
len=strlen(s);
c=fgetc(fp);
while(!feof(fp))
{
if(c==s[0]) //如果第一个字符相等,比较剩下的字符串
{
fpos=ftell(fp); //记住当前文件指针位置
for(i=1;i<len;i++)
{
if(fgetc(fp)!=s[i]) //如果不匹配,跳出循环
{
fseek(fp,fpos,0); //重新设置指针位置
break;
}
}
if(i==len) //如果匹配成功,累加数目
n++;
}
c=fgetc(fp);
if(c!=0) m++;
if(c=='\n') m++;
}
//********************************************************************
fclose(fp);
printf("\n与字符串%s匹配的有%d个",s,n); //输出匹配个数
printf("\n文件中共有%d行文本",m); //输出行数
getchar();
return 0;
}
统计一个文件(如test.txt)中程序的行数和某一符号串的出现次数,并输出到屏幕
于 2023-10-14 15:06:25 首次发布