chinesestcx 发表于 2021-9-17 17:55:20

C语言文件去注释

这是一个关于文件操作的题目,让删除在 hello.c 中C语言注释,并把删掉的注释保存在new_hello.c中
中间有一大部分是暂未编译的功能,所以被注释了
运行结果是个死循环,不断在hello.c中删除替换了一些莫名其妙的东西,在new_hello.c中不断地输出空格
请各位鱼友帮帮忙了
#include<stdio.h>
#include<stdlib.h>
int main()
{   
    char ch,ch2 = 0;
    FILE *pf = fopen("hello.c","r+");
    FILE *pf2 = fopen("new_hello.c","w");
    if(pf==NULL)
    {
      printf("file open error!");
      exit(0);
    }
    if(pf2==NULL)
    {
      printf("file open error!");
      exit(0);
    }
    while( (ch = fgetc(pf)) != EOF )
    {   

      if(ch=='/' && (ch2 = fgetc(pf)) != EOF)
      {   
            if(ch2=='/')
            {
                fseek(pf,-2,1);
                fputs("",pf);
                fputs("//",pf2);
            }

            // while( ( ch=fgetc(pf) ) !='\n')
            // {
            //   fputc(ch,pf2);
            //   fputc('-',pf2);
            //   fseek(pf,-1L,1);
            //   fputc('+',pf);
            // }
            // fputc('\n',pf2);
      }
      // else if(ch=='/' && ch2 == '*')
      // {
      //   fseek(pf,ftell(pf)-2,0);
      //   fputs("",pf);
      //   fputs("/*",pf2);
      //   while(1)
      //   {
      //         while( ( ch=fgetc(pf) ) !='*')
      //         {
      //             fputc(ch,pf2);
      //             fseek(pf,-1,1);
      //             fputc(' ',pf);
      //         }
      //         if(ch=='*' && ( ch=fgetc(pf) ) =='/' || ch==EOF)
      //         {   
      //             if(ch==EOF)
      //             {
      //               fputc('*',pf2);
      //               fseek(pf,-1,1);
      //               fputc(' ',pf);
      //             }
      //             else
      //             {
      //               fputs("*/\n",pf2);
      //               fseek(pf,-2,1);
      //               fputs("",pf);
      //             }
      //             break;
      //         }
      //         else
      //         {
      //               fputc('*',pf2);
      //               fseek(pf,-1,1);
      //               fputc(' ',pf);
      //         }
      //   }

      // }
    }
    if(fclose(pf))
    {
      printf("file close error!");
      exit(0);
    }
    if(fclose(pf2))
    {
      printf("file close error!");
      exit(0);
    }


    return 0;
}

chinesestcx 发表于 2021-9-22 13:58:32

没有人会吗
页: [1]
查看完整版本: C语言文件去注释