编写一个去除C语言注释的程序 30
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉的文件和注释放入一个新的文件中.编写一个程序:将C语言程序中的所有注释都去掉,并将去掉注释的文件和注释放入一个新的文...
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉的文件和注释放入一个新的文件中.
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉注释的文件和注释放入一个新的文件中.请给个全程序吧 我是菜鸟 谢谢。 展开
编写一个程序:将C语言程序中的所有注释都去掉,并将去掉注释的文件和注释放入一个新的文件中.请给个全程序吧 我是菜鸟 谢谢。 展开
4个回答
展开全部
分别做2次处理。
第一次处理 //
第二次处理 /* ..*/ ...
第一次处理 用fgets()
while (!feof(fin)){
if ( fgets(one_line,1023,fin)==NULL) break;
len = strlen(one_line);
for (i=0;i<len-1;i++){
if (one_line[i]=='/' && one_line[i+1]=='/'){
one_line[i] = '\0'; break;
}; }; // for i
if (i>0) fprintf(fout,"%s",one_line);
if (i<len-1) fprintf(fout,"\n");
};
------------------------
第二次处理 用 fgetc()
设初始状态 flag = 0
loop:
读一个字符c1
读下一个字符c2
连续读到的两个字符不是 /* 时, 输出c1,c2赋给c1,再 读下一个字符给c2, (如果c2是EOF则输出c1,程序结束。)直到 连续读到的两个字符是 /*
flag = 1
接下,不输出,只读,直到 连续读到的两个字符是*/
flag = 0
goto loop
第一次处理 //
第二次处理 /* ..*/ ...
第一次处理 用fgets()
while (!feof(fin)){
if ( fgets(one_line,1023,fin)==NULL) break;
len = strlen(one_line);
for (i=0;i<len-1;i++){
if (one_line[i]=='/' && one_line[i+1]=='/'){
one_line[i] = '\0'; break;
}; }; // for i
if (i>0) fprintf(fout,"%s",one_line);
if (i<len-1) fprintf(fout,"\n");
};
------------------------
第二次处理 用 fgetc()
设初始状态 flag = 0
loop:
读一个字符c1
读下一个字符c2
连续读到的两个字符不是 /* 时, 输出c1,c2赋给c1,再 读下一个字符给c2, (如果c2是EOF则输出c1,程序结束。)直到 连续读到的两个字符是 /*
flag = 1
接下,不输出,只读,直到 连续读到的两个字符是*/
flag = 0
goto loop
展开全部
其实,使用visual studio 打开一个源文件,选中所有文字,按快捷键:ctrl+k+u就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算法:
检查字符:
出现// 或者/*就把这些字符复制并删除到内存
检查字符:
出现// 或者/*就把这些字符复制并删除到内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个我不会
不过你用VC++6.0的话
注释会自动生成一个文件
不过你用VC++6.0的话
注释会自动生成一个文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询