VC"//" 注释转换为TC "/*.........*/" 注释

/

//大家有没有试过当想把VC带有"//"注释

//的程序放到TC下运行时全部都要改,

//你不觉得烦吗??

//实现VC"//" 注释转换为TC "/*.........*/" 注释

//运行环境VC++6.0 TC环境下没测试过!

//注意一行当中不能有"*/"

#include"stdio.h"
#include<stdlib.h>
#define ch1  '*'
#define ch2  "*/"
//const char ch1='*';
//const char *ch2="*/";
/*/*/
/*///把 注释"//" 转换为 注释"/*.........*/
int LineAnotate(char c,int count,FILE *fp1,FILE *fp2) 

 while(c!=EOF)
 {
  if(c=='/')
  {
   count++;
   while(count==2)    /* 此时c=='/'*/
   {
    count=0;    /* 清零*/
    fputc(ch1,fp2);
  /*  fputc('*',fp2);   // 把'*'输入到'/'后*/
    c=fgetc(fp1);   /*?? if c='/'时count没有+1 ???????*/
  /*  c=='/'被新字符覆盖*/
    while(c!='/n')
    {
     fputc(c,fp2); 
     c=fgetc(fp1);   /*在继续输出本行内的字符*/
    }
    /*----------------------------------------------------------*/
    if(c=='/n')    /*当遇到"//"后,在本行尾输出*/
    {
     fputs(ch2,fp2);
     /* fputc(c,fp2);  //输出'/n' 导致重复换行  */
    }
    /*----------------------------------------------------------*/
   }/*end while(c!='/n')*/
  }/*end if(c!='/')*/
  
  fputc(c,fp2); /*避免重复换行*/
  c=fgetc(fp1);
  
  /*每当遇到新一行开始时count清零,以免二行以上的'/'数量叠加*/
  if(c=='/n'||c!='/')
   count=0;   
 }/*end while(c!=EOF)*/
 return 1;
}
int main()
{
 FILE *fp1;
 FILE *fp2;
 char c;
 int flag=0;
 int count=0;
 char filepath1[30];
 char filepath2[30];

    printf("请输入文件路径filepath1:如: D://vc.c /n");
    scanf("%s",filepath1);getchar();

 printf("请输入文件路径filepath2:如: D://vc副本.c /n");
 scanf("%s",filepath2);getchar();

 if((fp1=fopen(filepath1,"r"))==NULL)/*只读*/
 {
  printf("Cannot open this file1!/n"); 
  exit(0);
 }
 
 if((fp2=fopen(filepath2,"a"))==NULL) /*追加*/
 {
  printf("Cannot open this file2!/n"); 
  exit(0);
 }
 c=fgetc(fp1);
 flag=LineAnotate(c,count,fp1,fp2);
 if(flag=1)printf("注释转换成功!/n");
 
 fclose(fp1); 
 fclose(fp2);
 return 0;
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值