怎么用c++编写一个能去掉C++源码里的注释

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:06:45
即删除所有的//和/* */注释。

分两步处理,第一次,去//注解,第二次去掉/* */注释

(1)open 这个C++源码文件,作为输入文件fin
(2)open 一个工作文件,作为新输出文件fout
(3)循环
一行一行读入,
#define buff_size 4000
char target[] = "//";
char *buff;
buff = (char *) malloc( Buff_size * sizeof (char));
while ( fgets( buff, buff_size, fin) !=NULL ) {
L = strlen(buff);
用内循环在buff里找target,用strncmp(。。。)确定是否找到了,若有,则把它换成"\0",输出buff,否则输出buff。
}
(4)关去两个文件
----------------------------
下面处理/* */注释
(5)open 工作文件,作为输入文件fin
open 成果文件,作为输出文件fout
(6)设状态标志flag = 0
(7) 用fgetc 一个字一个字(BYTE)循环读入,
如果flag == 0:
- 如果读到的不是 /,则输出这个BYTE并返回循环;
- 如果读到的是 /,则再读一个BYTE,如果读到的不是*,则输出/和这个BYTE并返回循环;否则就是注解开始了--设flag = 1并返回循环;
如果flag == 1:
- 如果读到的不是 *,则返回循环;
- 如果读到的是 *,则再读一个BYTE,如果读到的是 *,则再读一个BYTE,。。。如果读到的不是/则返回循环,如果是/,则flag = 0返回循环;
(8)关去两个文件