使用这段程序将源代码中的\r\n替换为\n
#include <stdio.h>
#include <io.h>
FILE *f;
int c1,c2;
long roff,woff;
int main(int argc,char *argv[]) {
if (argc!=2) {
printf("Usage: CRLF2LF filename\n");
return 1;
}
f=fopen(argv[1],"rb+");
if (NULL==f) {
printf("Can not open file [%s]!\n",argv[1]);
return 2;
}
roff=woff=0;
while (1) {
fseek(f,roff,SEEK_SET);
c1=fgetc(f);
if (EOF==c1) break;
roff++;
if ('\r'==c1) {
fseek(f,roff,SEEK_SET);
c2=fgetc(f);
if (EOF==c2) {
fseek(f,woff,SEEK_SET);
fputc('\n',f);
woff++;
break;//
}
roff++;
if ('\n'==c2) {
fseek(f,woff,SEEK_SET);
fputc('\n',f);
woff++;
} else {
fseek(f,woff,SEEK_SET);
fputc(c2,f);
woff++;
}
} else {
fseek(f,woff,SEEK_SET);
fputc(c1,f);
woff++;
}
}
chsize(fileno(f),woff);
fclose(f);
return 0;
}