在一行一行地读文件,然后一行一行地预处理一下,但是读到100多行时就死在循环里面,原文件300多行
不知道到底怎么搞的,在VC6.0时测试时断言错误,在linux下出现段错误?死在那个while循环里面,读了159行左右就死掉了,原文件大哥300行,程序如下
#include<string.h>#include<stdlib.h>#include<stdio.h>//#include<unistd.h>int main(){ FILE *fin,*fin1,*fout1,*fout2; char buf[1024],bu_f[1024]; char *buf1=NULL; char *buf_0x=NULL; if((fin=fopen("c:\\debug_ch1.txt","r"))==NULL) { printf("cannot open the file\n"); exit(0); } if((fout1=fopen("debug_ch_re.txt","w"))==NULL) { printf("cannot open outfile\n"); exit(0); } printf("hah!\n"); //fgets(buf,1024,in);int n=0; while(!feof(fin)) { // fgets(buf,1024,fin) ; printf("gegeg!\n");fgets(buf,1024,fin); printf("%d\n",++n); // if(buf[strlen(buf)-1]=='\n') buf[strlen(buf)]=' '; // printf("goo!"); if(strstr(buf,"DrawLine")!=NULL) continue; if((buf1=strstr(buf,"recv from comm:"))!=NULL) buf1+=strlen("recv from comm:"); fputs(buf1,fout1);//printf("oooooo1111\n"); //fputs("\n",out1); }printf("%s",buf); printf("%d\n",n); fclose(fin); fclose(fout1); /* if((fout2=fopen("debug_ch_revise.txt","w"))==NULL) { printf("cannot open the file\n"); exit(0); } printf("11111\n"); /* if((fin1=fopen("debug_ch_re.txt","r"))==NULL) { printf("cannot open outfile\n"); exit(0); }*///printf("222222222222\n");/*while(!feof(fin1)){ printf("sadffqwe\n"); fgets(bu_f,1024,fin1); printf("dsfdgggggggggwr\n"); if(buf[strlen(bu_f)-1]=='\n') buf[strlen(bu_f)]=' '; if(buf_0x=strstr(bu_f,"0x3 ")){ buf_0x+=4; *buf_0x='\n';} fputs(bu_f,fout2);}*///fclose(fin);//fclose(fout2); return 0;}