在学 编译原理,写了个删除注释的小程序
#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 "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);
}