编译原理——删除注释
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);
}
#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);
}
相关文章推荐
- 编译原理作业:编写一个程序,使之将一个C程序除注释之外的所有保留字全部大写
- jd-gui反编译成Java,删除每行注释
- 编译原理_pl0程序分析及注释
- 二、JAVA编译原理与注释
- 使用ar命令删除iOS静态库重复编译的.o文件
- 编译原理 First集 Follow集 select集 通俗易懂的讲解 + 实例
- Windows延迟删除原理
- 编译原理简单优先分析算法
- 《东南大学 编译原理 64讲》 学习笔记
- 【编译原理】概述总结(一)
- 词法分析初探(编译原理1-0)
- 详细注释说明PHP分页原理
- 编译原理 预测分析 源代码c 语言
- 程序编译和链接原理理解
- ahjesus Unity3D XML注释被编译的问题
- 黑马程序员_Java基础_IO流_File类,列出(删除)目录下内容,Properties类,付费软件提示原理
- android 编译原理详解
- jd-gui反编译jar后清除后面的注释信息
- Javac编译原理
- Android studio 删除所有注释