您的位置:首页 > 其它

编译原理——删除注释

2008-04-17 21:41 204 查看
在学 编译原理,写了个删除注释的小程序


#include "stdio.h"


#include "string.h"


void main()




...{


FILE *fIn,*fTemp,*fOut;


char ch1,ch2,buffer[100];


int i,len;


printf("___________________________________________________ ");


printf("*************************************************** ");


printf(" 这是一个用于删除C语言源程序中注释的小程序! ");


printf(" Made by zs,on Mar 27th,2008. ");


printf("*************************************************** ");


printf("___________________________________________________ ");




//删除'//'型注释


if((fIn=fopen("input.txt","r"))==NULL)




...{


printf("can not open this file! ");


}


fTemp=fopen("tempoutput.txt","w");




while (!feof(fIn))




...{


i=0;


fgets(buffer,100,fIn);


len=strlen(buffer);


while(len--)




...{


ch1=buffer[i];


ch2=buffer[i+1];


i++;


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




...{


fputc(' ',fTemp);


break;


}


fputc(ch1,fTemp);


}


}


fclose(fIn);


fclose(fTemp);




//删除'/**/'型注释


if((fTemp=fopen("tempoutput.txt","r"))==NULL)




...{


printf("can not open this file! ");


}


fOut=fopen("output.txt","w");




while ((ch1 = fgetc(fTemp)) != EOF)




...{


if (ch1== '/')




...{


ch2= fgetc(fTemp);


if (ch2 == '*')




...{


ch1= fgetc(fTemp);


ch2= fgetc(fTemp);


while (ch1 != '*' &&ch2 != '/')




...{


ch1=ch2;


ch2=fgetc(fTemp);




}


}


else




...{


fputc(ch1,fOut);


fputc(ch2,fOut);


}


}


else


fputc(ch1,fOut);




}


fclose(fTemp);


fclose(fOut);


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: