一个在文件中查找字符,并且返回行号的程序。
虽然确实可以达到我想要的目标,但是总觉得剑走偏锋过甚了。有没有哪位大神,可以弄一个比较合乎常理的程序代码。程序代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char c,b,buffer[256],data[35],*loc,buff[80]; char fname[20]; int count,x=0,y,a=0; FILE *fp; printf("请输入文件名: "); gets(fname); if((fp=fopen(fname,"rb"))==NULL) { printf("打开文件失败.\n"); exit(1); } printf("请输入你要查找的内容.\n"); scanf("%s",data); for(count=0;count<256;count++) { c=fgetc(fp); if(!feof(fp)) { buffer[count]=c; buffer[count+1]='\0'; } if(c=='\n') { x++; } } loc=strstr(buffer,data); if(loc==NULL) { printf("您所要的数据不再其中.\n"); exit(1); } strcpy(buff,loc); for(y=0;y<strlen(buff);y++) { c=buff[y]; if(c=='\n') { a++; } } printf("您所要的数据在第 %d 行.\n",(x-a)+1); fclose(fp); return 0; }