delbl.c
- #include<stdio.h>
- #include<ctype.h>
- int main( int argc, char **argv)
- {
- FILE *fp,*fpout;
- int num,len,i,flag=0;
- char str[9216],c,ones[1],*s,filepath[512]= "" ,filename[256],outfilename[256],tmp
- [128],savepath[512],tempfile[512];
- if (argc<2)
- {
- printf( "用法:delbl 文本文件路径 输出文件/n" );
- return ;
- }
- fp=fopen(argv[1], "r" );
- if (fp==NULL)
- {
- printf( "无法打开%s,请检查你的输入是否有误或你是否有读取该文件的权限!/n" ,argv[1]);
- exit(-1);
- }
- s=strrchr(argv[1], '//' );
- if (s==0)
- {
- strcpy(filename,argv[1]);
- }
- else
- {
- s++;
- strcpy(filename,s);
- len=strlen(argv[1])-strlen(s);
- strncpy(filepath,argv[1],len);
- }
- strcpy(savepath,filepath);
- s=strrchr(filename, '.' );
- if (s==0)
- {
- strcat(savepath,filename);
- strcat(savepath, ".txt" );
- }
- else
- {
- len=strlen(filename)-strlen(s);
- strncpy(tmp,filename,len);
- strcat(savepath,tmp);
- strcat(savepath, ".out" );
- strcat(savepath,s);
- }
- if (argc>2)
- {
- strcpy(savepath,argv[2]);
- }
- fpout=fopen(savepath, "w" );
- if (fpout==NULL)
- {
- printf( "无法创建文件%s,请检查你的输入是否有误或你是否有创建该文件的权限!/n" ,savepath);
- exit(-1);
- }
- while (1)
- {
- c=fgetc(fp);
- if (c== '/n' ||c==EOF)
- {
- flag=0;
- strcat(str, "/n" );
- len=strlen(str);
- for (i=0;i<len;i++) if (!(isspace(str[i])))flag=1;
- if (flag==1)fputs(str,fpout);
- strcpy(str, "" );
- }
- else
- {
- sprintf(ones, "%c" ,c);
- strcat(str,ones);
- }
- if (c==EOF) break ;
- }
- fclose(fp);
- fclose(fpout);
- printf( "删除文本文件空行成功!/n" );
- return ;
- }