使用c语言删除源文件注释,写了个删除源文件注释的小代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include//开动态内存用到的

int main ()

{

FILE *p;

char c,cc;//用来暂时存刚读出来的文件内容

char *pp;//用来存取数组的地址

int i=0,ii=0,iii=0;

int j,k=0,kk=0;

int jl=0;

char filename[50];

printf("请输入文件路径 例如:D:\\win\\1.c\n");

scanf("%s",filename);

if((p=fopen(filename,"r+"))==NULL){ //打开文件

printf("无法打开此文件");

exit(0);

}

while(!feof(p)){ //先计算一次这个文件的大小

i++;

c=fgetc(p);

}

rewind(p);//重新把文件标记回到前面

pp=(char *)calloc(i,1);//把前面计算的文件大小用来开个同样大小的数组

while(!feof(p)){//这步是把读到文件内容数组里

c=fgetc(p);

*(pp+ii)=c;

ii++;

}

*(pp+ii-1)='\0';//记得要数组后面加上\0

for(j=0;j

if(*(pp+j)=='\"')

jl=1;

if(*(pp+j)=='\"')

jl=0;

if(((*(pp+j)=='\/'&&*(pp+j+1)=='\/')||(*(pp+j)=='\/'&&*(pp+j+1)=='\*'))&&jl==0)

k=1;

if((*(pp+j)=='\n')||((*(pp+j-1)=='\*')&&(*(pp+j)=='\/')))

k=0;

if(k==1)

*(pp+j)=' ';

}

rewind(p);//重新把文件标记回到前面

fputs(pp,p);//把数组里的内容重新写到文件里

rewind(p);//重新把文件标记回到前面

while(!feof(p)){//输出看看改好了没有

cc=fgetc(p);

putchar(cc);

}

fclose(p);

return 0;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值