删除代码中的注释
来源:互联网 发布:wps数据透视图 编辑:程序博客网 时间:2024/05/01 21:50
#define N 1024void delete_notes(char infilename[],char outfilename[]){ FILE* infp = fopen(infilename, "r+"); FILE* outfp = fopen(outfilename, "w+"); int flag = 0, flag1 = 1; char ch, nch, str[N]; while(!feof(infp)) { ch = fgetc(infp); if(!flag) { if(ch == '/') { nch = fgetc(infp); if(nch == '*') flag = 1; else if(nch == '/') { flag1 = 0; fgets(str,N,infp); fputs("\n",outfp); } else { ungetc(nch,infp); //若还不是注释,退格一个字符 } } } if((!flag) && flag1) { if(ch!= EOF) fputc(ch, outfp); } flag1 = 1; if(flag) { if(ch == '*') { nch = fgetc(infp); if(nch == '/') //出现了“*/”,注释结束 { flag = 0; } else { ungetc(nch, infp); //若还是注释,则要退格一个字符 } } } } fclose(infp); fclose(outfp);}