删除代码中的注释

来源:互联网 发布: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);}


原创粉丝点击