编译原理删除c语言注释,删除C语言源程序文件中的所有注释

#include

#include

#include

#define STR_LEN 400

void main()

{

FILE *fpr, *fpw;

char ch, strline[STR_LEN + 1];

int i=0,p=0,q=0;

bool bFind = false, bEnd = false;

if ((fpr=fopen("c:\\c.c","r")) == NULL)

{

printf("open file fail!");

exit(0);

}

if ((fpw=fopen("c:\\c_new.c","w")) == NULL)

{

printf("write file fail!");

exit(0);

}

/*

判断文件结束 用 while(!feof(fpr)) 不是最安全的方式

可以用 while (fgets(strline, sizeof(strline), fpr) != NULL) { ... } 代替

*/

while(!feof(fpr))

{

//read a line

//fscanf("%s\n", fpr); //也可以读取一行,但前提是这一行中没有空格

fgets(strline, sizeof(strline), fpr);

p = 0;

q = strlen(strline);

bEnd = false;

for (i=0; strline[i]!='\0'; i++)

{

//find '//'

if (!bFind && strline[i] == '/' && strline[i+1] == '/')

{

p = i;

bFind = true;

bEnd = true;

break;

}

//find '/*'

if (!bFind && strline[i] == '/' && strline[i+1] == '*')

{

p = i;

bFind = true;

}

// find '*/'

if (bFind && strline[i] == '*' && strline[i+1] == '/')

{

q = i+2;

bEnd = true;

}

}

//delete row

if (bFind)

{

for (i=p; i

{

strline[i] = ' ';

}

if (bEnd)

{

bFind = false;

strline[i-1] = '\n';

}

}

printf("%s", strline);

fputs(strline, fpw);

}

fclose(fpr);

fclose(fpw);

system("pause");

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值