注册 登录
编程论坛 C++教室

将一下C语言改写成C++,会的请举手……

chr7410 发布于 2010-07-06 09:17, 581 次点击
#include "stdio.h" FILE *fp;
  main( )
  { int c, d;
   if((fp = fopen("d:\\tc\\test8.c","r")) == NULL)
    exit(0);
   while((c=fgetc(fp)) != EOF)
    if( c=='/' ) /* 如果是字符注释的起始字符'/' */
     if((d=fgetc(fp)) == '*') /* 则判断下一个字符是否为'*' */
      in_comment(); /* 调用函数处理(删除)注释 */
     else /* 否则原样输出读入的两个字符 */
      { putchar(c);
       putchar(d);
      }
    else
     if( c=='\'' || c=='\"') /* 判断是否是字符'或" */
      echo_quote(c); /* 调用函数处理字符'或"包含的字符 */
     else putchar(c);
  }

  in_comment()
  { int c, d;
   c=fgetc(fp);
   d=fgetc(fp);
   while( c!='*' || d!='/' )
    { /* 连续的两个字符不是 * 和 / 则继续处理注释 */
     c = d;
     d = fgetc(fp);
    }
  }

  echo_quote (c)
  int c; /* c中存放的是定界符'或" */
  { int d;
   putchar(c);
   while(( d=fgetc(fp))!=c) /* 读入下一个字符判断是否是定界符c */
    { putchar(c); /* 当不是定界符c时继续循环 */
     if(d=='\\') /* 若出现转义字符\ */
      putchar( fgetc(fp)); /* 则下一个字符不论是何均原样输出 */
    }
   putchar(d);
  }
2 回复
#2
qianzezi_pku2010-07-22 22:36
你的代码很多BUG。
#3
saynotolx2010-07-26 17:24
顶顶顶顶顶!
1