编译第一步:去源代码(C)注释

本文提供了一段C语言程序代码,该代码的功能是从输入文件中读取内容,并将其中的单行(//)和多行(/*...*/)注释删除,最终将处理后的文本写入另一个文件。通过逐行读取并判断是否为注释,从而实现注释的过滤。

#include

#include

 

main()

{

    char ch1,ch2,ch3,ch4;

    FILE *fp1,*fp2;

     if((fp1=fopen("D://c programs//常见题//input.txt","r"))==NULL)

    {

        printf("cann't open the input file/n");

        exit(1);

    }

    if((fp2=fopen("D://c programs//常见题//output.txt","w"))==NULL)

    {

        printf("cann't open the output file/n");

        exit(1);

    }

    

    ch1=fgetc(fp1);

    ch2=fgetc(fp1);

    while(!feof(fp1))

    {

        if('/'==ch1 && '/'==ch2)

//这里注意,判断条件要细分好,在设及到条件分支语句时,

//要注意,每个分支都要单独的测试到,会更容易维护

        {

 

            ch3=fgetc(fp1);

            while(!feof(fp1))

            {

                if(10==ch3)

                {

                    fputc(ch3,fp2);

                    break;

                }

                else

                {

                    ch3=fgetc(fp1);

                }

            }

            ch1=fgetc(fp1);

            ch2=fgetc(fp1);

        }

 

        if('/'==ch1 && '*'==ch2)

        {

            ch3=fgetc(fp1);

            ch4=fgetc(fp1);

            while(!feof(fp1))

            {

                if('*'==ch3 && '/'==ch4)

                {

                    ch1=fgetc(fp1);

                    ch2=fgetc(fp1);

                    break;

                }

                else

                {

                    ch3=ch4;

                    ch4=fgetc(fp1);

                }

            }

        }

 

        else

        {

            fputc(ch1,fp2);

            ch1=ch2;

            ch2=fgetc(fp1);

        }

    }

    fputc(ch1,fp2);

    fclose(fp1);

    fclose(fp2);

    return 1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗哥分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值