我已經成功地從input.c文件中刪除單行和多行註釋,但input.c文件中的任何註釋都在output.c文件中創建了空行。如何刪除它們?從c文件中刪除註釋後刪除空格
#include<stdio.h>
int main()
{
FILE *f1,*f2;
char c;
int i=0;
f1=fopen("input.c","r");
f2=fopen("output.c","w");
while((c=getc(f1))!=EOF)
{
if(c=='/')
{
if((c=getc(f1))=='*')
{
do
{
c=getc(f1);
}while(c!='*');
c=getc(f1);
if(c=='/')
c=getc(f1);
}
else
{
if(c=='/')
{
do
{
c=getc(f1);
}while(c!=10);
}
}
}
fseek(f2,1,i++);
putc(c,f2);
}
fclose(f1);
fclose(f2);
return 0;
}
您的代碼塊評論是有缺陷的。如果塊註釋包含嵌入的'*'字符,它將無法正常工作。 –
是的,你是對的。我知道,但它只是一個非常基本的程序,以瞭解編譯器的工作原理。 – sandy
如果您只想瞭解編譯器如何工作,您的程序太複雜了(並且正確工作,即消除空行,是根本不重要)。 – mah