鱼C论坛

 找回密码
 立即注册
查看: 1104|回复: 1

C语言文件去注释

[复制链接]
发表于 2021-9-17 17:55:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是一个关于文件操作的题目,让删除在 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;
}

程序处理后hello.c的结果

程序处理后hello.c的结果

原来的hello.c

原来的hello.c

程序处理后new_hello.c的结果

程序处理后new_hello.c的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-22 13:58:32 | 显示全部楼层
没有人会吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表