首页 > 代码库 > 删除注释

删除注释

1. 读取一个.C文件,删除该文件中所有的注释语句。然后写入到新的.C文件里。
要求:
1. 删除注释语句功能采用动态链接库形式
2. 在功能实现的基础上:
--单元测试要足够充分
--要通过所有的MISRA C的检查

--代码要符合代码规范。


分析:

读取文件 (读取整个文件的大小限定为100M,如果大于了这个值,就不处理,报错)

|

|

分析文件 ()

|

|

处理文件

|

|

  写文件


单元测试:

正常输入 、边界输入、非法的输入


#include<stdio.h>
int main()
{
        FILE *fp;
        char buf[100000],ch,flag2;
        int i,flag1=0;
        if((fp=fopen("hello.c","r"))==NULL)
         {
                printf("can‘t open file");
                exit(1);
         }
        buf[0]=fgetc(fp);
        i=1;




        while((ch=fgetc(fp))!=EOF)
       {
               buf[i]=ch;
               if(buf[i-1]==‘/‘&&ch==‘*‘)
              {
                      flag1=1;
                      i--;
              }
              if(flag2==‘*‘&&ch==‘/‘)
              {
                    flag1=0;
                    i--;
              }
 if(buf[i-1]==‘/‘&&ch==‘/‘)
              {
                      flag1=1;         -
                      i--;
              }
              if(flag2==‘/‘&&ch==‘n‘)
              {
                    flag1=0;
                    i--;
              }
        flag2=buf[i];
        if(flag1==0)
              i++;
      }




      buf[i]=‘\0‘;
      fclose(fp);
      if((fp=fopen("new.c","w"))==NULL)
      {
            printf("can‘t open file");
            exit(1);
      }
      fputs(buf,fp);
      fclose(fp);
      return 0;
}


删除注释